drm/i915: Only warn for might_sleep() before a slow wait_for_register
As intel_wait_for_register_fw() may use, and if successful only use, a busy-wait loop, the might_sleep() warning is a little over-zealous. Restrict it to a might_sleep_if() a slow timeout is specified (and so the caller authorises use of a usleep). Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Mika Kuoppala <mika.kuoppala@linux.intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20180329224519.13598-2-chris@chris-wilson.co.uk
This commit is contained in:
parent
5807e1c21d
commit
3df82dd43b
@ -1996,7 +1996,7 @@ int __intel_wait_for_register(struct drm_i915_private *dev_priv,
|
||||
u32 reg_value;
|
||||
int ret;
|
||||
|
||||
might_sleep();
|
||||
might_sleep_if(slow_timeout_ms);
|
||||
|
||||
spin_lock_irq(&dev_priv->uncore.lock);
|
||||
intel_uncore_forcewake_get__locked(dev_priv, fw);
|
||||
@ -2008,7 +2008,7 @@ int __intel_wait_for_register(struct drm_i915_private *dev_priv,
|
||||
intel_uncore_forcewake_put__locked(dev_priv, fw);
|
||||
spin_unlock_irq(&dev_priv->uncore.lock);
|
||||
|
||||
if (ret)
|
||||
if (ret && slow_timeout_ms)
|
||||
ret = __wait_for(reg_value = I915_READ_NOTRACE(reg),
|
||||
(reg_value & mask) == value,
|
||||
slow_timeout_ms * 1000, 10, 1000);
|
||||
|
Loading…
x
Reference in New Issue
Block a user