On Wed, 2023-02-22 at 13:01 -0800, Teres Alexis, Alan Previn wrote: > The Driver-FLR flow may inadvertently exit early before the full > completion of the re-init of the internal HW state if we only poll > GU_DEBUG Bit31 (polling for it to toggle from 0 -> 1). Instead > we need a two-step completion wait-for-completion flow that also > involves GU_CNTL. See the patch and new code comments for detail. > This is new direction from HW architecture folks. > > v2: - Add error message for the teardown timeout (Anshuman) > - Don't duplicate code in comments (Jani) > > Signed-off-by: Alan Previn <alan.previn.teres.alexis@xxxxxxxxx> > Fixes: 5a44fcd73498 ("drm/i915/gsc: Do a driver-FLR on unload if GSC was loaded") > --- > drivers/gpu/drm/i915/intel_uncore.c | 13 ++++++++++++- > 1 file changed, 12 insertions(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/i915/intel_uncore.c b/drivers/gpu/drm/i915/intel_uncore.c > index f018da7ebaac..f3c46352db89 100644 > --- a/drivers/gpu/drm/i915/intel_uncore.c > +++ b/drivers/gpu/drm/i915/intel_uncore.c > @@ -2749,14 +2749,25 @@ static void driver_initiated_flr(struct intel_uncore *uncore) > /* Trigger the actual Driver-FLR */ So i got offline feedback from Daniele during internal reviews before this went upstream that a runtime-pm ought to be taken, although not required functionally speaking during unload, should be there so we don't get complains from uncore when hitting up those registers. I'll recheck with Daniele. alan:snip