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.ma@xxxxxxx> > --- > 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;