[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