vblank: correct the client request time
[platform/core/uifw/libtdm.git] / src / tdm_vblank.c
index 88a5084..0cff134 100644 (file)
@@ -818,6 +818,10 @@ _tdm_vblank_wait_HW(tdm_vblank_wait_info *wait_info)
                last = private_vblank->last_time;
                req = wait_info->req_time;
 
+               /* make sure that req time is bigger than last. */
+               if (req < last)
+                       req = last;
+
                skip = (unsigned int)((req - last) / private_vblank->vblank_gap + TDM_TIME_MARGIN);
                prev = last + private_vblank->vblank_gap * skip;
 
@@ -965,6 +969,10 @@ _tdm_vblank_wait_SW(tdm_vblank_wait_info *wait_info)
                last = private_vblank->last_time;
                req = wait_info->req_time;
 
+               /* make sure that req time is bigger than last. */
+               if (req < last)
+                       req = last;
+
                skip = (unsigned int)((req - last) / private_vblank->vblank_gap + TDM_TIME_MARGIN);
                prev = last + private_vblank->vblank_gap * skip;