In wait for vblank use usleep_range, which will use hrtimers instead of
msleep. Using msleep(1~20) there are more chances of sleeping for 20ms.
Using usleep_range uses hrtimers and hence are precise, worst case will
trigger an interrupt at the higher/max timeout.

As per kernel document "Documentation/timers/timers-howto.txt" sleeping
for 10us to 20ms its recomended to use usleep_range.

Signed-off-by: Arun R Murthy <[email protected]>
---
 drivers/gpu/drm/i915/intel_drv.h |    5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h
index 44067bc..29a8664 100644
--- a/drivers/gpu/drm/i915/intel_drv.h
+++ b/drivers/gpu/drm/i915/intel_drv.h
@@ -52,7 +52,10 @@
                        break;                                          \
                }                                                       \
                if (W && drm_can_sleep())  {                            \
-                       msleep(W);                                      \
+                       if (W > 20)                                     \
+                               msleep(W);                              \
+                       else                                            \
+                               usleep_range(W * 1000, W * 2 * 1000);   \
                } else {                                                \
                        cpu_relax();                                    \
                }                                                       \
-- 
1.7.9.5

_______________________________________________
Intel-gfx mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to