sna/dri2: Tidy computation of 64bit ust

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
This commit is contained in:
Chris Wilson 2014-05-21 07:38:35 +01:00
parent a82f6a7594
commit 2dbe76c492
2 changed files with 8 additions and 3 deletions

View File

@ -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);

View File

@ -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));