From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:34524) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZZIR7-0006dK-Ax for qemu-devel@nongnu.org; Tue, 08 Sep 2015 08:55:46 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZZIR4-0006ci-5S for qemu-devel@nongnu.org; Tue, 08 Sep 2015 08:55:45 -0400 References: <1440703987-29012-1-git-send-email-lvivier@redhat.com> <1440703987-29012-9-git-send-email-lvivier@redhat.com> From: Laurent Vivier Message-ID: <55EEDACB.2040009@redhat.com> Date: Tue, 8 Sep 2015 14:55:39 +0200 MIME-Version: 1.0 In-Reply-To: <1440703987-29012-9-git-send-email-lvivier@redhat.com> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH v3 8/9] bt: remove muldiv64() List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org, Stefan Hajnoczi , Paolo Bonzini , qemu-trivial@nongnu.org ping ? 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 > --- > 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; >