[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