[Intel-gfx] [PATCH] drm/i914/guc: Fix resume on platforms w/o GuC submission but enabled

Hiatt, Don don.hiatt at intel.com
Thu Oct 24 20:10:14 UTC 2019


> On Thu, 2019-10-24 at 09:29 -0700, don.hiatt at intel.com wrote:
> > From: Don Hiatt <don.hiatt at intel.com>
> >
> > Check to see if GuC submission is enabled before requesting the
> > EXIT_S_STATE action.
> >
> > On some platforms (e.g. KBL) that do not support GuC submission, but
> > the user enabled the GuC communication (e.g for HuC authentication)
> > calling the GuC EXIT_S_STATE action results in lose of ability to
> > enter RC6. Guard against this by only requesting the GuC action on
> > platforms that support GuC submission.
> >
> > I've verfied that intel_guc_resume() only gets called when driver
> > is loaded with: guc_enable={1,2,3}, all other cases (no args,
> > guc_enable={0,-1} the intel_guc_resume() is not called.
> >
> > Signed-off-by: Don Hiatt <don.hiatt at intel.com>
> > ---
> >  drivers/gpu/drm/i915/gt/uc/intel_guc.c | 5 ++++-
> >  1 file changed, 4 insertions(+), 1 deletion(-)
> >
> > diff --git a/drivers/gpu/drm/i915/gt/uc/intel_guc.c
> > b/drivers/gpu/drm/i915/gt/uc/intel_guc.c
> > index 37f7bcbf7dac..33318ed135c0 100644
> > --- a/drivers/gpu/drm/i915/gt/uc/intel_guc.c
> > +++ b/drivers/gpu/drm/i915/gt/uc/intel_guc.c
> > @@ -565,7 +565,10 @@ int intel_guc_resume(struct intel_guc *guc)
> >  		GUC_POWER_D0,
> >  	};
> >
> > -	return intel_guc_send(guc, action, ARRAY_SIZE(action));
> > +	if (guc->submission_supported)
> 
> Hey Don,
> 
> I might be missing something here, but glancing over the code for
> submission_supported, it looks like this relies on the availability of
> the firmware for the intended platform. Looking at the GuC table for
> KBL, I do see this present (using KBL per your commit above). So
> wouldn't this return true here if enable_guc is set to 1 or 3?
> 
> Thanks,
> Stuart

Hi Stuart,

KBL does not support GuC submission, just HuC authentication. I've instrumented
the code and verified that all guc->submission_supported is always false when guc_enable
is set for KBL.

Thanks,

don

> 
> > +		return intel_guc_send(guc, action, ARRAY_SIZE(action));
> > +
> > +	return 0;
> >  }
> >
> >  /**


More information about the Intel-gfx mailing list