[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v3 8/9] bt: remove muldiv64()
From: |
Paolo Bonzini |
Subject: |
Re: [Qemu-devel] [PATCH v3 8/9] bt: remove muldiv64() |
Date: |
Tue, 8 Sep 2015 08:57:59 -0400 (EDT) |
> ping ?
Not really the most alive part of QEMU. :-)
> On 27/08/2015 21:33, Laurent Vivier wrote:
> > Originally, timers were ticks based, and it made sense to
> > add ticks to current time to know when to trigger an alarm.
> >
> > But since commit:
> >
> > 7447545 change all other clock references to use nanosecond resolution
> > accessors
> >
> > All timers use nanoseconds and we need to convert ticks to nanoseconds.
> >
> > As get_ticks_per_sec() is 10^9,
> >
> > a = muldiv64(b, get_ticks_per_sec(), 100);
> > y = muldiv64(x, get_ticks_per_sec(), 1000000);
> >
> > can be converted to
> >
> > a = b * 10000000;
> > y = x * 1000;
> >
> > Signed-off-by: Laurent Vivier <address@hidden>
> > ---
> > hw/bt/hci.c | 4 ++--
> > 1 file changed, 2 insertions(+), 2 deletions(-)
> >
> > diff --git a/hw/bt/hci.c b/hw/bt/hci.c
> > index 7ea3dc6..585ee2e 100644
> > --- a/hw/bt/hci.c
> > +++ b/hw/bt/hci.c
> > @@ -595,7 +595,7 @@ static void bt_hci_inquiry_result(struct bt_hci_s *hci,
> > static void bt_hci_mod_timer_1280ms(QEMUTimer *timer, int period)
> > {
> > timer_mod(timer, qemu_clock_get_ns(QEMU_CLOCK_VIRTUAL) +
> > - muldiv64(period << 7, get_ticks_per_sec(), 100));
> > + (uint64_t)(period << 7) * 10000000);
> > }
> >
> > static void bt_hci_inquiry_start(struct bt_hci_s *hci, int length)
> > @@ -1099,7 +1099,7 @@ static int bt_hci_mode_change(struct bt_hci_s *hci,
> > uint16_t handle,
> > bt_hci_event_status(hci, HCI_SUCCESS);
> >
> > timer_mod(link->acl_mode_timer, qemu_clock_get_ns(QEMU_CLOCK_VIRTUAL)
> > +
> > - muldiv64(interval * 625, get_ticks_per_sec(),
> > 1000000));
> > + ((uint64_t)interval * 625) * 1000);
> > bt_hci_lmp_mode_change_master(hci, link->link, mode, interval);
> >
> > return 0;
> >
>
Reviewed-by: Paolo Bonzini <address@hidden>