diff options
author | Imre Deak <imre.deak@intel.com> | 2021-03-11 15:45:29 +0100 |
---|---|---|
committer | Imre Deak <imre.deak@intel.com> | 2021-04-02 00:29:58 +0200 |
commit | d339ef1c4d6bb351251211d296ecbe05c2a54819 (patch) | |
tree | 4eedfe81a593e12590c6fa61cf71b21668ab6a39 /drivers/gpu/drm/i915/i915_drv.c | |
parent | drm/i915: Update plane ratio for icl+ (diff) | |
download | linux-d339ef1c4d6bb351251211d296ecbe05c2a54819.tar.xz linux-d339ef1c4d6bb351251211d296ecbe05c2a54819.zip |
drm/i915: Uninit the DMC FW loader state during shutdown
We need to wait for the DMC FW loader work to complete during shutdown,
even if it's unlikely to be still pending by that time, fix this.
This also fixes the wakeref tracking WARN during shutdown about the
leaked reference we hold due to a missing DMC firmware.
While at it add a TODO comment about unifying the shutdown and PM
power-off sequences and later these sequences with the driver remove and
system/runtime suspend sequences.
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
References: https://lore.kernel.org/lkml/20210303055517.GB2708@xsang-OptiPlex-9020
Reported-and-tested-by: kernel test robot <oliver.sang@intel.com>
Reported-and-tested-by: Edward Baker <edward.baker@intel.com>
Signed-off-by: Imre Deak <imre.deak@intel.com>
Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20210311144529.3059024-1-imre.deak@intel.com
Diffstat (limited to 'drivers/gpu/drm/i915/i915_drv.c')
-rw-r--r-- | drivers/gpu/drm/i915/i915_drv.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c index 8bd80a46ba0a..abb0152b56f4 100644 --- a/drivers/gpu/drm/i915/i915_drv.c +++ b/drivers/gpu/drm/i915/i915_drv.c @@ -1029,10 +1029,18 @@ void i915_driver_shutdown(struct drm_i915_private *i915) intel_suspend_encoders(i915); intel_shutdown_encoders(i915); + intel_csr_ucode_suspend(i915); + /* * The only requirement is to reboot with display DC states disabled, * for now leaving all display power wells in the INIT power domain - * enabled matching the driver reload sequence. + * enabled. + * + * TODO: + * - unify the pci_driver::shutdown sequence here with the + * pci_driver.driver.pm.poweroff,poweroff_late sequence. + * - unify the driver remove and system/runtime suspend sequences with + * the above unified shutdown/poweroff sequence. */ intel_power_domains_driver_remove(i915); enable_rpm_wakeref_asserts(&i915->runtime_pm); |