On Sun, Feb 26, 2023 at 01:58:10AM +0000, Damien Zammit wrote: > Currently, the one-shot (mode 1) PIT expires far too quickly, > due to the output being set under the wrong logic. > This change fixes the one-shot PIT mode to behave similarly to mode 0. > > TESTED: using the one-shot PIT mode to calibrate a local apic timer. > > Signed-off-by: Damien Zammit <dam...@zamaudio.com> > > --- > hw/timer/i8254_common.c | 4 +--- > 1 file changed, 1 insertion(+), 3 deletions(-) > > diff --git a/hw/timer/i8254_common.c b/hw/timer/i8254_common.c > index 050875b497..9164576ca9 100644 > --- a/hw/timer/i8254_common.c > +++ b/hw/timer/i8254_common.c > @@ -52,10 +52,8 @@ int pit_get_out(PITChannelState *s, int64_t current_time) > switch (s->mode) { > default: > case 0: > - out = (d >= s->count); > - break;
I think you need something like /* FALLTHRU */ here otherwise some gcc versions will warn. > case 1: > - out = (d < s->count); > + out = (d >= s->count); > break; > case 2: > if ((d % s->count) == 0 && d != 0) { > -- > 2.39.0 >