Message ID | 20200614142840.10245-4-mark.cave-ayland@ilande.co.uk |
---|---|
State | New |
Headers | show |
Series | ADB: fix autopoll issues and rework mac_via state machine | expand |
On 6/14/20 4:28 PM, Mark Cave-Ayland wrote: > This is in preparation for consolidating all of the ADB autopoll management > in one place. > > Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org> > --- > hw/misc/macio/cuda.c | 15 ++++++++------- > 1 file changed, 8 insertions(+), 7 deletions(-) > > diff --git a/hw/misc/macio/cuda.c b/hw/misc/macio/cuda.c > index e0cc0aac5d..a407f2abc8 100644 > --- a/hw/misc/macio/cuda.c > +++ b/hw/misc/macio/cuda.c > @@ -208,8 +208,9 @@ static void cuda_adb_poll(void *opaque) > obuf[1] = 0x40; /* polled data */ > cuda_send_packet_to_host(s, obuf, olen + 2); > } > - timer_mod(s->adb_poll_timer, qemu_clock_get_ns(QEMU_CLOCK_VIRTUAL) + > - (NANOSECONDS_PER_SECOND / (1000 / s->autopoll_rate_ms))); > + > + timer_mod(s->adb_poll_timer, qemu_clock_get_ms(QEMU_CLOCK_VIRTUAL) + > + s->autopoll_rate_ms); > } > > /* description of commands */ > @@ -236,8 +237,8 @@ static bool cuda_cmd_autopoll(CUDAState *s, > s->autopoll = autopoll; > if (autopoll) { > timer_mod(s->adb_poll_timer, > - qemu_clock_get_ns(QEMU_CLOCK_VIRTUAL) + > - (NANOSECONDS_PER_SECOND / (1000 / s->autopoll_rate_ms))); > + qemu_clock_get_ms(QEMU_CLOCK_VIRTUAL) + > + s->autopoll_rate_ms); > } else { > timer_del(s->adb_poll_timer); > } > @@ -262,8 +263,8 @@ static bool cuda_cmd_set_autorate(CUDAState *s, > s->autopoll_rate_ms = in_data[0]; > if (s->autopoll) { > timer_mod(s->adb_poll_timer, > - qemu_clock_get_ns(QEMU_CLOCK_VIRTUAL) + > - (NANOSECONDS_PER_SECOND / (1000 / s->autopoll_rate_ms))); > + qemu_clock_get_ms(QEMU_CLOCK_VIRTUAL) + > + s->autopoll_rate_ms); > } > return true; > } > @@ -539,7 +540,7 @@ static void cuda_realize(DeviceState *dev, Error **errp) > s->sr_delay_timer = timer_new_ns(QEMU_CLOCK_VIRTUAL, cuda_set_sr_int, s); > s->sr_delay_ns = 20 * SCALE_US; > > - s->adb_poll_timer = timer_new_ns(QEMU_CLOCK_VIRTUAL, cuda_adb_poll, s); > + s->adb_poll_timer = timer_new_ms(QEMU_CLOCK_VIRTUAL, cuda_adb_poll, s); > s->adb_poll_mask = 0xffff; > s->autopoll_rate_ms = 20; > } >
diff --git a/hw/misc/macio/cuda.c b/hw/misc/macio/cuda.c index e0cc0aac5d..a407f2abc8 100644 --- a/hw/misc/macio/cuda.c +++ b/hw/misc/macio/cuda.c @@ -208,8 +208,9 @@ static void cuda_adb_poll(void *opaque) obuf[1] = 0x40; /* polled data */ cuda_send_packet_to_host(s, obuf, olen + 2); } - timer_mod(s->adb_poll_timer, qemu_clock_get_ns(QEMU_CLOCK_VIRTUAL) + - (NANOSECONDS_PER_SECOND / (1000 / s->autopoll_rate_ms))); + + timer_mod(s->adb_poll_timer, qemu_clock_get_ms(QEMU_CLOCK_VIRTUAL) + + s->autopoll_rate_ms); } /* description of commands */ @@ -236,8 +237,8 @@ static bool cuda_cmd_autopoll(CUDAState *s, s->autopoll = autopoll; if (autopoll) { timer_mod(s->adb_poll_timer, - qemu_clock_get_ns(QEMU_CLOCK_VIRTUAL) + - (NANOSECONDS_PER_SECOND / (1000 / s->autopoll_rate_ms))); + qemu_clock_get_ms(QEMU_CLOCK_VIRTUAL) + + s->autopoll_rate_ms); } else { timer_del(s->adb_poll_timer); } @@ -262,8 +263,8 @@ static bool cuda_cmd_set_autorate(CUDAState *s, s->autopoll_rate_ms = in_data[0]; if (s->autopoll) { timer_mod(s->adb_poll_timer, - qemu_clock_get_ns(QEMU_CLOCK_VIRTUAL) + - (NANOSECONDS_PER_SECOND / (1000 / s->autopoll_rate_ms))); + qemu_clock_get_ms(QEMU_CLOCK_VIRTUAL) + + s->autopoll_rate_ms); } return true; } @@ -539,7 +540,7 @@ static void cuda_realize(DeviceState *dev, Error **errp) s->sr_delay_timer = timer_new_ns(QEMU_CLOCK_VIRTUAL, cuda_set_sr_int, s); s->sr_delay_ns = 20 * SCALE_US; - s->adb_poll_timer = timer_new_ns(QEMU_CLOCK_VIRTUAL, cuda_adb_poll, s); + s->adb_poll_timer = timer_new_ms(QEMU_CLOCK_VIRTUAL, cuda_adb_poll, s); s->adb_poll_mask = 0xffff; s->autopoll_rate_ms = 20; }
This is in preparation for consolidating all of the ADB autopoll management in one place. Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> --- hw/misc/macio/cuda.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-)