staging: drm/omap: use current time for page-flip event
authorRob Clark <rob@ti.com>
Mon, 12 Mar 2012 02:11:22 +0000 (21:11 -0500)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 13 Mar 2012 22:44:44 +0000 (15:44 -0700)
Because we don't have vblank hooked up via drm_irq (which is a bit
awkward due to separation between omapdss (which knows the irq #)
and omapdrm, for now use gettimeofday to have a semi-sane timestamp
in the page-flip event.  Otherwise apps like weston drm compositor,
which use the timestamp in it's animations, get highly confused.

Signed-off-by: Rob Clark <rob@ti.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/omapdrm/omap_crtc.c

index 13e3c7f7d2b96fd245830b2fd482d665c9499c7f..490a7f15604bad28b1b4d6e6fd2d4156ba54d88e 100644 (file)
@@ -134,9 +134,19 @@ static void vblank_cb(void *arg)
 
        /* wakeup userspace */
        if (event) {
+               do_gettimeofday(&now);
+
                spin_lock_irqsave(&dev->event_lock, flags);
+               /* TODO: we can't yet use the vblank time accounting,
+                * because omapdss lower layer is the one that knows
+                * the irq # and registers the handler, which more or
+                * less defeats how drm_irq works.. for now just fake
+                * the sequence number and use gettimeofday..
+                *
                event->event.sequence = drm_vblank_count_and_time(
                                dev, omap_crtc->id, &now);
+                */
+               event->event.sequence = sequence++;
                event->event.tv_sec = now.tv_sec;
                event->event.tv_usec = now.tv_usec;
                list_add_tail(&event->base.link,