On 3/15/2024 2:46 PM, Le Ma wrote:
> To fix the entity rq NULL issue. This setting has been moved to upper level.
> 

Need to call amdgpu_ttm_set_buffer_funcs_status(adev, true/false) in
mode-2 reset handlers as well.

Thanks,
Lijo

> Fixes b70438004a14 ("drm/amdgpu: move buffer funcs setting up a level")
> 
> Signed-off-by: Le Ma <le...@amd.com>
> ---
>  drivers/gpu/drm/amd/amdgpu/sdma_v4_4_2.c | 20 +-------------------
>  1 file changed, 1 insertion(+), 19 deletions(-)
> 
> diff --git a/drivers/gpu/drm/amd/amdgpu/sdma_v4_4_2.c 
> b/drivers/gpu/drm/amd/amdgpu/sdma_v4_4_2.c
> index eaa4f5f49949..589a734982a7 100644
> --- a/drivers/gpu/drm/amd/amdgpu/sdma_v4_4_2.c
> +++ b/drivers/gpu/drm/amd/amdgpu/sdma_v4_4_2.c
> @@ -431,16 +431,11 @@ static void sdma_v4_4_2_inst_gfx_stop(struct 
> amdgpu_device *adev,
>       struct amdgpu_ring *sdma[AMDGPU_MAX_SDMA_INSTANCES];
>       u32 doorbell_offset, doorbell;
>       u32 rb_cntl, ib_cntl;
> -     int i, unset = 0;
> +     int i;
>  
>       for_each_inst(i, inst_mask) {
>               sdma[i] = &adev->sdma.instance[i].ring;
>  
> -             if ((adev->mman.buffer_funcs_ring == sdma[i]) && unset != 1) {
> -                     amdgpu_ttm_set_buffer_funcs_status(adev, false);
> -                     unset = 1;
> -             }
> -
>               rb_cntl = RREG32_SDMA(i, regSDMA_GFX_RB_CNTL);
>               rb_cntl = REG_SET_FIELD(rb_cntl, SDMA_GFX_RB_CNTL, RB_ENABLE, 
> 0);
>               WREG32_SDMA(i, regSDMA_GFX_RB_CNTL, rb_cntl);
> @@ -490,17 +485,10 @@ static void sdma_v4_4_2_inst_page_stop(struct 
> amdgpu_device *adev,
>       struct amdgpu_ring *sdma[AMDGPU_MAX_SDMA_INSTANCES];
>       u32 rb_cntl, ib_cntl;
>       int i;
> -     bool unset = false;
>  
>       for_each_inst(i, inst_mask) {
>               sdma[i] = &adev->sdma.instance[i].page;
>  
> -             if ((adev->mman.buffer_funcs_ring == sdma[i]) &&
> -                     (!unset)) {
> -                     amdgpu_ttm_set_buffer_funcs_status(adev, false);
> -                     unset = true;
> -             }
> -
>               rb_cntl = RREG32_SDMA(i, regSDMA_PAGE_RB_CNTL);
>               rb_cntl = REG_SET_FIELD(rb_cntl, SDMA_PAGE_RB_CNTL,
>                                       RB_ENABLE, 0);
> @@ -950,13 +938,7 @@ static int sdma_v4_4_2_inst_start(struct amdgpu_device 
> *adev,
>                       r = amdgpu_ring_test_helper(page);
>                       if (r)
>                               return r;
> -
> -                     if (adev->mman.buffer_funcs_ring == page)
> -                             amdgpu_ttm_set_buffer_funcs_status(adev, true);
>               }
> -
> -             if (adev->mman.buffer_funcs_ring == ring)
> -                     amdgpu_ttm_set_buffer_funcs_status(adev, true);
>       }
>  
>       return r;

Reply via email to