[Intel-gfx] [PATCH] drm/i915: Simplify condition to keep DMC active during S0ix

Ville Syrjälä ville.syrjala at linux.intel.com
Wed Aug 22 12:27:09 UTC 2018


On Wed, Aug 22, 2018 at 02:26:02PM +0300, Imre Deak wrote:
> For S0ix we want to deinit power domains (and so deactivate the DMC
> firmware) exactly when the platform supports the DC9 state. To reach
> S0ix we need DC9 on these platforms (for which the DMC FW needs to be
> deactivated) while to reach S0ix on the rest of the DMC platforms we
> need DC6 (which needs the DMC FW to stay active).
> 
> Simplify the condition accordingly so it will be automatically
> correct for upcoming DC9 platforms like ICL.
> 
> Cc: Lucas De Marchi <lucas.demarchi at intel.com>
> Cc: Michel Thierry <michel.thierry at intel.com>
> Cc: Ville Syrjälä <ville.syrjala at linux.intel.com>
> Cc: Rodrigo Vivi <rodrigo.vivi at intel.com>
> Cc: Paulo Zanoni <paulo.r.zanoni at intel.com>
> Cc: Chris Wilson <chris at chris-wilson.co.uk>
> Signed-off-by: Imre Deak <imre.deak at intel.com>

Reviewed-by: Ville Syrjälä <ville.syrjala at linux.intel.com>

> ---
>  drivers/gpu/drm/i915/intel_runtime_pm.c | 13 +++++++------
>  1 file changed, 7 insertions(+), 6 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/intel_runtime_pm.c b/drivers/gpu/drm/i915/intel_runtime_pm.c
> index ff3fd8dbd2b4..1b10b7041513 100644
> --- a/drivers/gpu/drm/i915/intel_runtime_pm.c
> +++ b/drivers/gpu/drm/i915/intel_runtime_pm.c
> @@ -3848,13 +3848,14 @@ void intel_power_domains_suspend(struct drm_i915_private *dev_priv,
>  	intel_display_power_put(dev_priv, POWER_DOMAIN_INIT);
>  
>  	/*
> -	 * In case of firmware assisted context save/restore don't manually
> -	 * deinit the power domains. This also means the CSR/DMC firmware will
> -	 * stay active, it will power down any HW resources as required and
> -	 * also enable deeper system power states that would be blocked if the
> -	 * firmware was inactive.
> +	 * In case of suspend-to-idle (aka S0ix) on a DMC platform without DC9
> +	 * support don't manually deinit the power domains. This also means the
> +	 * CSR/DMC firmware will stay active, it will power down any HW
> +	 * resources as required and also enable deeper system power states
> +	 * that would be blocked if the firmware was inactive.
>  	 */
> -	if (!IS_GEN9_LP(dev_priv) && suspend_mode == I915_DRM_SUSPEND_IDLE &&
> +	if (!(dev_priv->csr.allowed_dc_mask & DC_STATE_EN_DC9) &&
> +	    suspend_mode == I915_DRM_SUSPEND_IDLE &&
>  	    dev_priv->csr.dmc_payload != NULL) {
>  		intel_power_domains_verify_state(dev_priv);
>  		return;
> -- 
> 2.13.2

-- 
Ville Syrjälä
Intel


More information about the Intel-gfx mailing list