summaryrefslogtreecommitdiff
path: root/drivers/gpu/drm/i915/i915_drv.h
diff options
context:
space:
mode:
authorImre Deak <imre.deak@intel.com>2014-01-29 13:25:40 +0200
committerDaniel Vetter <daniel.vetter@ffwll.ch>2014-01-29 20:44:49 +0100
commitec5e0cfb19e79ce3a87b281ce4c2682eb659fa6e (patch)
tree993a3144abe9d62e0b03190b1c4571d6f645893f /drivers/gpu/drm/i915/i915_drv.h
parent2754436913b94626a5414d82f0996489628c513d (diff)
downloadlwn-ec5e0cfb19e79ce3a87b281ce4c2682eb659fa6e.tar.gz
lwn-ec5e0cfb19e79ce3a87b281ce4c2682eb659fa6e.zip
drm/i915: fix wait_remaining_ms_from_jiffies
schedule_timeout_uninterruptible() takes jiffies not ms. v2: - ignore the overflow issue, the practical part of that should be solved instead in the caller (Chris) Note that this issue was introduced in commit dce56b3c626fb1d533258a624d42a1a3fc17da17 Author: Paulo Zanoni <paulo.r.zanoni@intel.com> Date: Thu Dec 19 14:29:40 2013 -0200 drm/i915: save some time when waiting the eDP timings I've accidentally merged the broken v4 version of the patch (where Jani noticed the issue [1]) instead of the v5, which was fixed [2]. [1] http://mid.gmane.org/87fvpnkgyg.fsf@intel.com [2] http://mid.gmane.org/1388778311-2020-1-git-send-email-przanoni@gmail.com Signed-off-by: Imre Deak <imre.deak@intel.com> Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk> [danvet: Add admission of incompetence in the form of a note.] Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Diffstat (limited to 'drivers/gpu/drm/i915/i915_drv.h')
-rw-r--r--drivers/gpu/drm/i915/i915_drv.h12
1 files changed, 5 insertions, 7 deletions
diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index 34c084b24353..118675c8cc30 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -2649,8 +2649,7 @@ timespec_to_jiffies_timeout(const struct timespec *value)
static inline void
wait_remaining_ms_from_jiffies(unsigned long timestamp_jiffies, int to_wait_ms)
{
- unsigned long target_jiffies, tmp_jiffies;
- unsigned int remaining_ms;
+ unsigned long target_jiffies, tmp_jiffies, remaining_jiffies;
/*
* Don't re-read the value of "jiffies" every time since it may change
@@ -2661,11 +2660,10 @@ wait_remaining_ms_from_jiffies(unsigned long timestamp_jiffies, int to_wait_ms)
msecs_to_jiffies_timeout(to_wait_ms);
if (time_after(target_jiffies, tmp_jiffies)) {
- remaining_ms = jiffies_to_msecs((long)target_jiffies -
- (long)tmp_jiffies);
- while (remaining_ms)
- remaining_ms =
- schedule_timeout_uninterruptible(remaining_ms);
+ remaining_jiffies = target_jiffies - tmp_jiffies;
+ while (remaining_jiffies)
+ remaining_jiffies =
+ schedule_timeout_uninterruptible(remaining_jiffies);
}
}