On Wed, Apr 17, 2024 at 5:38 AM Sunil Khatri <sunil.khatri@xxxxxxx> wrote: > > Invoke the dump_ip_state function for each ip before > the asic resets and save the register values for > debugging via devcoredump. > > Signed-off-by: Sunil Khatri <sunil.khatri@xxxxxxx> Reviewed-by: Alex Deucher <alexander.deucher@xxxxxxx> > --- > drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 7 +++++++ > 1 file changed, 7 insertions(+) > > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c > index f3b7cb18fd46..f8a34db5d9e3 100644 > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c > @@ -5353,6 +5353,7 @@ int amdgpu_do_asic_reset(struct list_head *device_list_handle, > struct amdgpu_device *tmp_adev = NULL; > bool need_full_reset, skip_hw_reset, vram_lost = false; > int r = 0; > + uint32_t i; > > /* Try reset handler method first */ > tmp_adev = list_first_entry(device_list_handle, struct amdgpu_device, > @@ -5361,6 +5362,12 @@ int amdgpu_do_asic_reset(struct list_head *device_list_handle, > if (!test_bit(AMDGPU_SKIP_COREDUMP, &reset_context->flags)) > amdgpu_reset_reg_dumps(tmp_adev); > > + /* Trigger ip dump before we reset the asic */ > + for (i = 0; i < tmp_adev->num_ip_blocks; i++) > + if (tmp_adev->ip_blocks[i].version->funcs->dump_ip_state) > + tmp_adev->ip_blocks[i].version->funcs->dump_ip_state( > + (void *)tmp_adev); > + > reset_context->reset_device_list = device_list_handle; > r = amdgpu_reset_perform_reset(tmp_adev, reset_context); > /* If reset handler not implemented, continue; otherwise return */ > -- > 2.34.1 >