[Intel-gfx] [PATCH 2/2] drm/i915/guc: Skip suspend/resume GuC action on platforms w/o GuC submission

Hiatt, Don don.hiatt at intel.com
Fri Nov 15 17:22:47 UTC 2019


> From: Summers, Stuart <stuart.summers at intel.com>
> Sent: Friday, November 15, 2019 9:13 AM
> 
> On Thu, 2019-11-14 at 17:11 -0800, don.hiatt at intel.com wrote:
> > From: Don Hiatt <don.hiatt at intel.com>
> >
> > 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. We can remove the GuC suspend/resume entirely as we do
> > not need to save the GuC submission status.
> >
> > v2: Do not suspend/resume the GuC on platforms that do not support
> >     Guc Submission.
> > v3: Fix typo, move suspend logic to remove goto.
> > v4: Use intel_guc_submission_is_enabled() to check GuC submission
> >     status.
> >
> > Signed-off-by: Don Hiatt <don.hiatt at intel.com>
> 
> Any reason not to just combine both of these into a single patch?
> 
> Thanks,
> Stuart
> 

I didn't combine them for two reasons:
1) I wasn't sure if there'd be an ask to use intel_guc_submission_is_enabled() in
    other places.
2) The git log entry highlights the introduction of a new function available for use.

I'll combine them if that's the consensus. 

don

> > ---
> >  drivers/gpu/drm/i915/gt/uc/intel_guc.c | 7 +++++++
> >  drivers/gpu/drm/i915/gt/uc/intel_uc.c  | 8 ++++++++
> >  2 files changed, 15 insertions(+)
> >
> > diff --git a/drivers/gpu/drm/i915/gt/uc/intel_guc.c
> > b/drivers/gpu/drm/i915/gt/uc/intel_guc.c
> > index 019ae6486e8d..92d9305c0d73 100644
> > --- a/drivers/gpu/drm/i915/gt/uc/intel_guc.c
> > +++ b/drivers/gpu/drm/i915/gt/uc/intel_guc.c
> > @@ -553,6 +553,13 @@ int intel_guc_suspend(struct intel_guc *guc)
> >  		GUC_POWER_D1, /* any value greater than GUC_POWER_D0
> */
> >  	};
> >
> > +	/*
> > +	 * If GuC communication is enabled but submission is not
> > supported,
> > +	 * we do not need to suspend the GuC.
> > +	 */
> > +	if (!intel_guc_submission_is_enabled(guc))
> > +		return 0;
> > +
> >  	/*
> >  	 * The ENTER_S_STATE action queues the save/restore operation
> > in GuC FW
> >  	 * and then returns, so waiting on the H2G is not enough to
> > guarantee
> > diff --git a/drivers/gpu/drm/i915/gt/uc/intel_uc.c
> > b/drivers/gpu/drm/i915/gt/uc/intel_uc.c
> > index 629b19377a29..4dd43b99a334 100644
> > --- a/drivers/gpu/drm/i915/gt/uc/intel_uc.c
> > +++ b/drivers/gpu/drm/i915/gt/uc/intel_uc.c
> > @@ -605,6 +605,14 @@ static int __uc_resume(struct intel_uc *uc, bool
> > enable_communication)
> >  	if (enable_communication)
> >  		guc_enable_communication(guc);
> >
> > +	/*
> > +	 * If GuC communication is enabled but submission is not
> > supported,
> > +	 * we do not need to resume the GuC but we do need to enable
> > the
> > +	 * GuC communication on resume (above).
> > +	 */
> > +	if (!intel_guc_submission_is_enabled(guc))
> > +		return 0;
> > +
> >  	err = intel_guc_resume(guc);
> >  	if (err) {
> >  		DRM_DEBUG_DRIVER("Failed to resume GuC, err=%d", err);


More information about the Intel-gfx mailing list