> From: Ceraolo Spurio, Daniele <daniele.ceraolospurio@xxxxxxxxx> > Sent: Monday, October 28, 2019 9:44 AM > To: Hiatt, Don <don.hiatt@xxxxxxxxx>; intel-gfx@xxxxxxxxxxxxxxxxxxxxx > Subject: Re: [PATCH] drm/i914/guc: Fix resume on platforms w/o GuC > submission but enabled > > > > On 10/24/19 9:29 AM, don.hiatt@xxxxxxxxx wrote: > > From: Don Hiatt <don.hiatt@xxxxxxxxx> > > > > Check to see if GuC submission is enabled before requesting the > > EXIT_S_STATE action. > > > > You're only skipping the resume, but does it make any sense to do the > suspend action if we're not going to call the resume one? Does guc do > anything in the suspend action that we still require? I thought it only > saved the submission status, which we don't care about if guc submission > is disabled. > > Daniele > Hi Daniele, I tried skipping the suspend all together but then the HuC gets timeouts waiting for the GuC to acknowledge the authentication request which leads to a wedged GPU. ☹ BTW, I made a typo in the patch, should be 'drm/i915' not '914', I'll fix that up. Thanks, don > > 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@xxxxxxxxx> > > --- > > 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) > > + return intel_guc_send(guc, action, ARRAY_SIZE(action)); > > + > > + return 0; > > } > > > > /** > > _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx