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

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


Quoting Chris Wilson (2018-08-15 12:35:29)
> 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) ?

I think it's a sensible reminder in case we forget before attempting to
clear the alpha support flag, nevertheless
Reviewed-by: Chris Wilson <chris at chris-wilson.co.uk>
-Chris


More information about the Intel-gfx mailing list