drm/i915: Don't cancel DRRS worker synchronously for flush/invalidate
authorDaniel Vetter <daniel.vetter@ffwll.ch>
Thu, 9 Apr 2015 14:44:16 +0000 (16:44 +0200)
committerJani Nikula <jani.nikula@intel.com>
Fri, 10 Apr 2015 11:30:09 +0000 (14:30 +0300)
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 <chris@chris-wilson.co.uk>
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Cc: Ramalingam C <ramalingam.c@intel.com>
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Cc: Vandana Kannan <vandana.kannan@intel.com>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
drivers/gpu/drm/i915/intel_dp.c

index 5e60473d08feb25f9f25d4fb01cf12fe48da3a96..8e0d1015fb36524daf31d563b3434257bf91457f 100644 (file)
@@ -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) {