From mboxrd@z Thu Jan 1 00:00:00 1970 From: Arun R Murthy Subject: [PATCH v4] drm/i915: use hrtimer in wait for vblank Date: Tue, 25 Mar 2014 14:28:22 +0530 Message-ID: <1395737902-11984-1-git-send-email-arun.r.murthy@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTP id 435566E099 for ; Tue, 25 Mar 2014 01:59:13 -0700 (PDT) List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: daniel.vetter@ffwll.ch, jani.nikula@linux.intel.com, intel-gfx@lists.freedesktop.org, airlied@linux.ie, chris@chris-wilson.co.uk Cc: Arun R Murthy List-Id: intel-gfx@lists.freedesktop.org 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 --- 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