drm/i915/display: Fix warning callstack for imbalance wakeref
authorMitul Golani <mitulkumar.ajitkumar.golani@intel.com>
Tue, 30 Aug 2022 08:51:58 +0000 (14:21 +0530)
committerImre Deak <imre.deak@intel.com>
Thu, 1 Sep 2022 10:47:38 +0000 (13:47 +0300)
While executing i915_selftest, wakeref imbalance warning is seen
with i915_selftest failure.

Currently when Driver is suspended, while doing unregister
it is taking wakeref without resuming the device.
This patch is resuming the device, if driver is already suspended
and doing unregister process.

Signed-off-by: Mitul Golani <mitulkumar.ajitkumar.golani@intel.com>
Signed-off-by: Imre Deak <imre.deak@intel.com>
Reviewed-by: Imre Deak <imre.deak@intel.com>
Reviewed-by: Andrzej Hajda <andrzej.hajda@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20220830085158.577157-1-mitulkumar.ajitkumar.golani@intel.com
drivers/gpu/drm/i915/i915_driver.c

index 3aedc33ded5758b3ca047e2729ef08177e4363e7..56a2bcddb2aff7c0aa7b3340b2cd6de9c02c17cb 100644 (file)
@@ -953,7 +953,9 @@ out_fini:
 
 void i915_driver_remove(struct drm_i915_private *i915)
 {
-       disable_rpm_wakeref_asserts(&i915->runtime_pm);
+       intel_wakeref_t wakeref;
+
+       wakeref = intel_runtime_pm_get(&i915->runtime_pm);
 
        i915_driver_unregister(i915);
 
@@ -977,18 +979,19 @@ void i915_driver_remove(struct drm_i915_private *i915)
 
        i915_driver_hw_remove(i915);
 
-       enable_rpm_wakeref_asserts(&i915->runtime_pm);
+       intel_runtime_pm_put(&i915->runtime_pm, wakeref);
 }
 
 static void i915_driver_release(struct drm_device *dev)
 {
        struct drm_i915_private *dev_priv = to_i915(dev);
        struct intel_runtime_pm *rpm = &dev_priv->runtime_pm;
+       intel_wakeref_t wakeref;
 
        if (!dev_priv->do_release)
                return;
 
-       disable_rpm_wakeref_asserts(rpm);
+       wakeref = intel_runtime_pm_get(rpm);
 
        i915_gem_driver_release(dev_priv);
 
@@ -999,7 +1002,8 @@ static void i915_driver_release(struct drm_device *dev)
 
        i915_driver_mmio_release(dev_priv);
 
-       enable_rpm_wakeref_asserts(rpm);
+       intel_runtime_pm_put(rpm, wakeref);
+
        intel_runtime_pm_driver_release(rpm);
 
        i915_driver_late_release(dev_priv);