[PATCH] drm/amdgpu: force exit gfxoff on sdma resume for rmb s0ix
Alex Deucher
alexdeucher at gmail.com
Mon Sep 27 15:16:40 UTC 2021
On Sun, Sep 26, 2021 at 9:14 AM Prike Liang <Prike.Liang at amd.com> 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 at amd.com>
Reviewed-by: Alex Deucher <alexander.deucher at amd.com>
> ---
> 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
>
More information about the amd-gfx
mailing list