On Wed, Sep 2, 2026 at 3:35 AM Christian König <[email protected]> wrote: > > On 9/1/26 22:10, Alex Deucher wrote: > > We need to disallow gfxoff if we touch GC MMIO registers. > > At the moment we use KIQ or MES for TLB flushes so > > no intended functional change. > > One reason to use the KIQ for TLB invalidation was to avoid > enabling/disabling GFXOFF all the time. > > So this change here might work around GFXOFF issues, but that only hides the > problems we have with GFXOFF and doesn't fix them. > > The same is true for all other generations.
This was meant to be a short term fix which could more easily be backported on the way to enabling SDMA later in the series to work around issues like KIQ dying when doing invalidations. Alex > > Regards, > Christian. > > > > > Signed-off-by: Alex Deucher <[email protected]> > > --- > > drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c | 7 +++++++ > > 1 file changed, 7 insertions(+) > > > > diff --git a/drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c > > b/drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c > > index b46b87291c512..80f1cf1f21736 100644 > > --- a/drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c > > +++ b/drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c > > @@ -808,6 +808,10 @@ static void gmc_v9_0_flush_gpu_tlb(struct > > amdgpu_device *adev, uint32_t vmid, > > return; > > } > > > > + /* disabllow gfxoff when we invalidate */ > > + if (vmhub < AMDGPU_MMHUB0(0)) > > + amdgpu_gfx_off_ctrl(adev, false); > > + > > /* This path is needed before KIQ/MES/GFXOFF are set up */ > > spin_lock(&adev->gmc.invalidate_lock); > > > > @@ -873,6 +877,9 @@ static void gmc_v9_0_flush_gpu_tlb(struct amdgpu_device > > *adev, uint32_t vmid, > > > > spin_unlock(&adev->gmc.invalidate_lock); > > > > + if (vmhub < AMDGPU_MMHUB0(0)) > > + amdgpu_gfx_off_ctrl(adev, true); > > + > > if (j < adev->usec_timeout) > > return; > > >
