On Sun, Sep 26, 2021 at 9:14 AM Prike Liang <Prike.Liang@xxxxxxx> wrote: > > In the s2idle stress test sdma resume fail occasionally,in the > failed case GPU is in the gfxoff state.This issue may introduce > by FSDL miss handle doorbell S/R and now temporary fix the issue > by forcing exit gfxoff for sdma resume. > > Signed-off-by: Prike Liang <Prike.Liang@xxxxxxx> Reviewed-by: Alex Deucher <alexander.deucher@xxxxxxx> > --- > drivers/gpu/drm/amd/amdgpu/sdma_v5_2.c | 8 ++++++++ > 1 file changed, 8 insertions(+) > > diff --git a/drivers/gpu/drm/amd/amdgpu/sdma_v5_2.c b/drivers/gpu/drm/amd/amdgpu/sdma_v5_2.c > index e4a96e7e386d..81906955ef52 100644 > --- a/drivers/gpu/drm/amd/amdgpu/sdma_v5_2.c > +++ b/drivers/gpu/drm/amd/amdgpu/sdma_v5_2.c > @@ -868,6 +868,12 @@ static int sdma_v5_2_start(struct amdgpu_device *adev) > msleep(1000); > } > > + /* TODO: check whether can submit a doorbell request to raise > + * a doorbell fence to exit gfxoff. > + */ > + if (adev->in_s0ix) > + amdgpu_gfx_off_ctrl(adev, false); > + > sdma_v5_2_soft_reset(adev); > /* unhalt the MEs */ > sdma_v5_2_enable(adev, true); > @@ -876,6 +882,8 @@ static int sdma_v5_2_start(struct amdgpu_device *adev) > > /* start the gfx rings and rlc compute queues */ > r = sdma_v5_2_gfx_resume(adev); > + if (adev->in_s0ix) > + amdgpu_gfx_off_ctrl(adev, true); > if (r) > return r; > r = sdma_v5_2_rlc_resume(adev); > -- > 2.17.1 >