drm/exynos: get event time from ktime 76/48076/2
authorJoonyoung Shim <jy0922.shim@samsung.com>
Mon, 14 Sep 2015 02:39:01 +0000 (11:39 +0900)
committerJoonyoung Shim <jy0922.shim@samsung.com>
Tue, 15 Sep 2015 00:12:18 +0000 (09:12 +0900)
G2D and IPP drivers gets event time from do_gettimeofday(), but drm
vblank event gets it from ktime. Use ktime for consistency.

Change-Id: I9b2f4c74540c4a15845f5de67ffcd537ba57afeb
Signed-off-by: Joonyoung Shim <jy0922.shim@samsung.com>
drivers/gpu/drm/exynos/exynos_drm_g2d.c
drivers/gpu/drm/exynos/exynos_drm_ipp.c

index 81a25083080845d626c6b50b2f46a9c4897e79f3..67da4bfaea39f6ef633ae7dc92c9b138a370eafe 100644 (file)
@@ -890,6 +890,7 @@ static void g2d_finish_event(struct g2d_data *g2d, u32 cmdlist_no)
        struct g2d_runqueue_node *runqueue_node = g2d->runqueue_node;
        struct drm_exynos_pending_g2d_event *e;
        struct timeval now;
+       ktime_t now_ktime;
        unsigned long flags;
 
        if (list_empty(&runqueue_node->event_list))
@@ -898,7 +899,8 @@ static void g2d_finish_event(struct g2d_data *g2d, u32 cmdlist_no)
        e = list_first_entry(&runqueue_node->event_list,
                             struct drm_exynos_pending_g2d_event, base.link);
 
-       do_gettimeofday(&now);
+       now_ktime = drm_timestamp_monotonic ? ktime_get() : ktime_get_real();
+       now = ktime_to_timeval(now_ktime);
        e->event.tv_sec = now.tv_sec;
        e->event.tv_usec = now.tv_usec;
        e->event.cmdlist_no = cmdlist_no;
index 2626cd07de3cdf03cc2afa26624298e8eeeea76a..47b8db394c16f1f404e86db839ec9bca548ffe0c 100644 (file)
@@ -1426,6 +1426,7 @@ static int ipp_send_event(struct exynos_drm_ippdrv *ippdrv,
        struct drm_exynos_ipp_send_event *e;
        struct list_head *head;
        struct timeval now;
+       ktime_t now_ktime;
        unsigned long flags;
        u32 tbuf_id[EXYNOS_DRM_OPS_MAX] = {0, };
        int ret, i;
@@ -1529,7 +1530,8 @@ static int ipp_send_event(struct exynos_drm_ippdrv *ippdrv,
        e = list_first_entry(&c_node->event_list,
                struct drm_exynos_ipp_send_event, base.link);
 
-       do_gettimeofday(&now);
+       now_ktime = drm_timestamp_monotonic ? ktime_get() : ktime_get_real();
+       now = ktime_to_timeval(now_ktime);
        DRM_DEBUG_KMS("tv_sec[%ld]tv_usec[%ld]\n", now.tv_sec, now.tv_usec);
        e->event.tv_sec = now.tv_sec;
        e->event.tv_usec = now.tv_usec;