On Fri, Apr 11, 2025 at 4:29 AM jesse.zh...@amd.com <jesse.zh...@amd.com> wrote: > > From: "jesse.zh...@amd.com" <jesse.zh...@amd.com> > > This patch introduces new function pointers in the amdgpu_sdma structure > to handle queue stop, start and soft reset operations. These will replace > the older callback mechanism. > > The new functions are: > - stop_kernel_queue: Stops a specific SDMA queue > - start_kernel_queue: Starts/Restores a specific SDMA queue > - soft_reset_kernel_queue: Performs soft reset on a specific SDMA queue > > v2: Update stop_queue/start_queue function paramters to use ring pointer > instead of device/instance(Chritian) > v3: move stop_queue/start_queue to struct amdgpu_sdma_instance and rename > them. (Alex) > v4: rework the ordering a bit (Alex) > > Suggested-by: Alex Deucher <alexander.deuc...@amd.com> > Signed-off-by: Jesse Zhang <jesse.zh...@amd.com>
Reviewed-by: Alex Deucher <alexander.deuc...@amd.com> > --- > drivers/gpu/drm/amd/amdgpu/amdgpu_sdma.h | 8 +++++++- > 1 file changed, 7 insertions(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_sdma.h > b/drivers/gpu/drm/amd/amdgpu/amdgpu_sdma.h > index 0b1fbcf0b4d0..a6c8f07a0da4 100644 > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_sdma.h > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_sdma.h > @@ -50,6 +50,12 @@ enum amdgpu_sdma_irq { > > #define NUM_SDMA(x) hweight32(x) > > +struct amdgpu_sdma_funcs { > + int (*stop_kernel_queue)(struct amdgpu_ring *ring); > + int (*start_kernel_queue)(struct amdgpu_ring *ring); > + int (*soft_reset_kernel_queue)(struct amdgpu_device *adev, u32 > instance_id); > +}; > + > struct amdgpu_sdma_instance { > /* SDMA firmware */ > const struct firmware *fw; > @@ -68,7 +74,7 @@ struct amdgpu_sdma_instance { > /* track guilty state of GFX and PAGE queues */ > bool gfx_guilty; > bool page_guilty; > - > + const struct amdgpu_sdma_funcs *funcs; > }; > > enum amdgpu_sdma_ras_memory_id { > -- > 2.25.1 >