From 2dbe76c4925e02b8ec20b986069e2ff38cea5bba Mon Sep 17 00:00:00 2001 From: Chris Wilson Date: Wed, 21 May 2014 07:38:35 +0100 Subject: [PATCH] sna/dri2: Tidy computation of 64bit ust Signed-off-by: Chris Wilson --- src/sna/sna.h | 5 +++++ src/sna/sna_dri2.c | 6 +++--- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/sna/sna.h b/src/sna/sna.h index 8cfa98a9..a5141811 100644 --- a/src/sna/sna.h +++ b/src/sna/sna.h @@ -463,6 +463,11 @@ extern xf86CrtcPtr sna_covering_crtc(struct sna *sna, extern bool sna_wait_for_scanline(struct sna *sna, PixmapPtr pixmap, xf86CrtcPtr crtc, const BoxRec *clip); +static inline uint64_t ust64(int tv_sec, int tv_usec) +{ + return (uint64_t)tv_sec * 1000000 + tv_usec; +} + #if HAVE_DRI2_H bool sna_dri2_open(struct sna *sna, ScreenPtr pScreen); void sna_dri2_page_flip_handler(struct sna *sna, struct drm_event_vblank *event); diff --git a/src/sna/sna_dri2.c b/src/sna/sna_dri2.c index 6991c91a..d86c86e7 100644 --- a/src/sna/sna_dri2.c +++ b/src/sna/sna_dri2.c @@ -2402,8 +2402,8 @@ fail: if (pipe < 0) pipe = 0; *msc = sna->dri2.last_swap[pipe].msc; - *ust = ((uint64_t)sna->dri2.last_swap[pipe].tv_sec * 100000 + - sna->dri2.last_swap[pipe].tv_usec); + *ust = ust64(sna->dri2.last_swap[pipe].tv_sec, + sna->dri2.last_swap[pipe].tv_usec); return TRUE; } @@ -2420,7 +2420,7 @@ fail: sna->dri2.last_swap[pipe].tv_usec = vbl.reply.tval_usec; sna->dri2.last_swap[pipe].msc = vbl.reply.sequence; - *ust = ((CARD64)vbl.reply.tval_sec * 1000000) + vbl.reply.tval_usec; + *ust = ust64(vbl.reply.tval_sec, vbl.reply.tval_usec); *msc = vbl.reply.sequence; DBG(("%s: msc=%llu, ust=%llu\n", __FUNCTION__, (long long)*msc, (long long)*ust));