From: Daniel Vetter Date: Thu, 9 Apr 2015 14:44:16 +0000 (+0200) Subject: drm/i915: Don't cancel DRRS worker synchronously for flush/invalidate X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=88f933a8b03474ebcd16935d3620e5c10b557f6f;p=linux-beck.git drm/i915: Don't cancel DRRS worker synchronously for flush/invalidate It's not needed since the worker rechecks that it didn't race. We only need to cancel synchronously after disabling drrs to make sure the worker really is gone (e.g. for driver unload). But for normal operation the stall is just wasted time. Reported-by: Chris Wilson Cc: Chris Wilson Cc: Ville Syrjälä Cc: Ramalingam C Cc: Rodrigo Vivi Cc: Vandana Kannan Reviewed-by: Chris Wilson Signed-off-by: Daniel Vetter Signed-off-by: Jani Nikula --- diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c index 5e60473d08fe..8e0d1015fb36 100644 --- a/drivers/gpu/drm/i915/intel_dp.c +++ b/drivers/gpu/drm/i915/intel_dp.c @@ -5181,7 +5181,7 @@ void intel_edp_drrs_invalidate(struct drm_device *dev, if (dev_priv->drrs.type == DRRS_NOT_SUPPORTED) return; - cancel_delayed_work_sync(&dev_priv->drrs.work); + cancel_delayed_work(&dev_priv->drrs.work); mutex_lock(&dev_priv->drrs.mutex); if (!dev_priv->drrs.dp) { @@ -5225,7 +5225,7 @@ void intel_edp_drrs_flush(struct drm_device *dev, if (dev_priv->drrs.type == DRRS_NOT_SUPPORTED) return; - cancel_delayed_work_sync(&dev_priv->drrs.work); + cancel_delayed_work(&dev_priv->drrs.work); mutex_lock(&dev_priv->drrs.mutex); if (!dev_priv->drrs.dp) {