[Intel-gfx] [PATCH] drm/i915: Uninit the DMC FW loader state during shutdown

Ed Baker edward.baker at intel.com
Wed Mar 31 21:15:56 UTC 2021


On 3/11/21 7:45 AM, Imre Deak wrote:
> 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 at linux.intel.com>
> References: https://lore.kernel.org/lkml/20210303055517.GB2708@xsang-OptiPlex-9020
> Reported-by: kernel test robot <oliver.sang at intel.com>
> Signed-off-by: Imre Deak <imre.deak at intel.com>
> ---
>  drivers/gpu/drm/i915/i915_drv.c | 10 +++++++++-
>  1 file changed, 9 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c
> index 3edd5e47ad68..4a0e491e9692 100644
> --- a/drivers/gpu/drm/i915/i915_drv.c
> +++ b/drivers/gpu/drm/i915/i915_drv.c
> @@ -1038,10 +1038,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);
> 

Verified on a TGL i5 system. This patch was applied on top of Google's 5.4 kernel for Chrome OS (https://chromium.googlesource.com/chromiumos/third_party/kernel/+/62a7016219 specifically).

Tested-by: Edward Baker <edward.baker at intel.com>


More information about the Intel-gfx mailing list