[Intel-gfx] [PATCH] drm/i915: Fix PM refcounting w/o DMC firmware

Chris Wilson chris at chris-wilson.co.uk
Wed Aug 15 11:35:29 UTC 2018


Quoting Imre Deak (2018-08-15 12:30:16)
> The case where the firmware isn't specified for a platform (although
> runtime PM works only with DMC on this platform) is the same case where
> the firmware is specified but can't be loaded for some reason. Hence we
> need to get a display init power domain ref in the first case too to
> keep the refcount bookkeeping in balance.
> 
> Also convert the related log message to be a debug one, since it's a
> valid scenario for a new platform, where we need to have
> dev_info->has_csr=1 set, but add support for actually loading the
> firmware only later.
> 
> References: https://bugs.freedesktop.org/show_bug.cgi?id=107382
> Cc: Chris Wilson <chris at chris-wilson.co.uk>
> Cc: Anusha Srivatsa <anusha.srivatsa at intel.com>
> Signed-off-by: Imre Deak <imre.deak at intel.com>
> ---
>  drivers/gpu/drm/i915/intel_csr.c | 12 ++++++------
>  1 file changed, 6 insertions(+), 6 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/intel_csr.c b/drivers/gpu/drm/i915/intel_csr.c
> index cf9b600cca79..b0384b9d1c58 100644
> --- a/drivers/gpu/drm/i915/intel_csr.c
> +++ b/drivers/gpu/drm/i915/intel_csr.c
> @@ -468,12 +468,6 @@ void intel_csr_ucode_init(struct drm_i915_private *dev_priv)
>                 csr->fw_path = I915_CSR_SKL;
>         else if (IS_BROXTON(dev_priv))
>                 csr->fw_path = I915_CSR_BXT;
> -       else {
> -               DRM_ERROR("Unexpected: no known CSR firmware for platform\n");
> -               return;
> -       }
> -
> -       DRM_DEBUG_KMS("Loading %s\n", csr->fw_path);
>  
>         /*
>          * Obtain a runtime pm reference, until CSR is loaded,
> @@ -481,6 +475,12 @@ void intel_csr_ucode_init(struct drm_i915_private *dev_priv)
>          */
>         intel_display_power_get(dev_priv, POWER_DOMAIN_INIT);
>  
> +       if (csr->fw_path == NULL) {
> +               DRM_DEBUG_KMS("No known CSR firmware for platform, disabling runtime PM\n");

WARN_ON(!INTEL_INFO(dev_priv)->is_alpha_support) ?
-Chris


More information about the Intel-gfx mailing list