[PATCH v2 9/9] drm/amdgpu: Enable devcoredump for JPEG2_5_0

Sundararaju, Sathishkumar sasundar at amd.com
Wed Jan 29 16:56:50 UTC 2025


Hi Leo,

Oh! I somehow missed it, I will enable it in 5_0_0 as well.
Initially I had some confusion around 4_0_5 and 5_0_0 as they both are 
in dpg mode, but after checking the existing register access I enabled 
it in 4_0_5, but missed to enable it in 5_0_0.

Regards,
Sathish

On 1/29/2025 10:06 PM, Leo Liu wrote:
> Looks pretty good to me. One question that why this is not added to 
> JPEG 5_0_0? Since the patch 3-9 cover the rest of versions, they are:
>
> Reviewed-by: Leo Liu <leo.liu at amd.com>
>
> On 1/29/25 03:46, Sathishkumar S wrote:
>> Add register list and enable devcoredump for JPEG2_5_0
>>
>> V2: (Lijo)
>> - remove version specific callbacks and use simplified helper functions
>>
>> Signed-off-by: Sathishkumar S <sathishkumar.sundararaju at amd.com>
>> ---
>>   drivers/gpu/drm/amd/amdgpu/jpeg_v2_5.c | 26 ++++++++++++++++++++++++++
>>   1 file changed, 26 insertions(+)
>>
>> diff --git a/drivers/gpu/drm/amd/amdgpu/jpeg_v2_5.c 
>> b/drivers/gpu/drm/amd/amdgpu/jpeg_v2_5.c
>> index 11f6af2646e7..536a6101dcf9 100644
>> --- a/drivers/gpu/drm/amd/amdgpu/jpeg_v2_5.c
>> +++ b/drivers/gpu/drm/amd/amdgpu/jpeg_v2_5.c
>> @@ -36,6 +36,22 @@
>>     #define JPEG25_MAX_HW_INSTANCES_ARCTURUS            2
>>   +static const struct amdgpu_hwip_reg_entry jpeg_reg_list_2_5[] = {
>> +    SOC15_REG_ENTRY_STR(JPEG, 0, mmUVD_JPEG_POWER_STATUS),
>> +    SOC15_REG_ENTRY_STR(JPEG, 0, mmUVD_JPEG_INT_STAT),
>> +    SOC15_REG_ENTRY_STR(JPEG, 0, mmUVD_JRBC_RB_RPTR),
>> +    SOC15_REG_ENTRY_STR(JPEG, 0, mmUVD_JRBC_RB_WPTR),
>> +    SOC15_REG_ENTRY_STR(JPEG, 0, mmUVD_JRBC_RB_CNTL),
>> +    SOC15_REG_ENTRY_STR(JPEG, 0, mmUVD_JRBC_RB_SIZE),
>> +    SOC15_REG_ENTRY_STR(JPEG, 0, mmUVD_JRBC_STATUS),
>> +    SOC15_REG_ENTRY_STR(JPEG, 0, mmJPEG_DEC_ADDR_MODE),
>> +    SOC15_REG_ENTRY_STR(JPEG, 0, mmJPEG_DEC_GFX10_ADDR_CONFIG),
>> +    SOC15_REG_ENTRY_STR(JPEG, 0, mmJPEG_DEC_Y_GFX10_TILING_SURFACE),
>> +    SOC15_REG_ENTRY_STR(JPEG, 0, mmJPEG_DEC_UV_GFX10_TILING_SURFACE),
>> +    SOC15_REG_ENTRY_STR(JPEG, 0, mmUVD_JPEG_PITCH),
>> +    SOC15_REG_ENTRY_STR(JPEG, 0, mmUVD_JPEG_UV_PITCH),
>> +};
>> +
>>   static void jpeg_v2_5_set_dec_ring_funcs(struct amdgpu_device *adev);
>>   static void jpeg_v2_5_set_irq_funcs(struct amdgpu_device *adev);
>>   static int jpeg_v2_5_set_powergating_state(struct amdgpu_ip_block 
>> *ip_block,
>> @@ -147,6 +163,10 @@ static int jpeg_v2_5_sw_init(struct 
>> amdgpu_ip_block *ip_block)
>>       if (r)
>>           return r;
>>   +    r = amdgpu_jpeg_reg_dump_init(adev, jpeg_reg_list_2_5, 
>> ARRAY_SIZE(jpeg_reg_list_2_5));
>> +    if (r)
>> +        return r;
>> +
>>       return 0;
>>   }
>>   @@ -168,6 +188,8 @@ static int jpeg_v2_5_sw_fini(struct 
>> amdgpu_ip_block *ip_block)
>>         r = amdgpu_jpeg_sw_fini(adev);
>>   +    amdgpu_jpeg_reg_dump_fini(adev);
>> +
>>       return r;
>>   }
>>   @@ -623,6 +645,8 @@ static const struct amd_ip_funcs 
>> jpeg_v2_5_ip_funcs = {
>>       .wait_for_idle = jpeg_v2_5_wait_for_idle,
>>       .set_clockgating_state = jpeg_v2_5_set_clockgating_state,
>>       .set_powergating_state = jpeg_v2_5_set_powergating_state,
>> +    .dump_ip_state = amdgpu_jpeg_dump_ip_state,
>> +    .print_ip_state = amdgpu_jpeg_print_ip_state,
>>   };
>>     static const struct amd_ip_funcs jpeg_v2_6_ip_funcs = {
>> @@ -638,6 +662,8 @@ static const struct amd_ip_funcs 
>> jpeg_v2_6_ip_funcs = {
>>       .wait_for_idle = jpeg_v2_5_wait_for_idle,
>>       .set_clockgating_state = jpeg_v2_5_set_clockgating_state,
>>       .set_powergating_state = jpeg_v2_5_set_powergating_state,
>> +    .dump_ip_state = amdgpu_jpeg_dump_ip_state,
>> +    .print_ip_state = amdgpu_jpeg_print_ip_state,
>>   };
>>     static const struct amdgpu_ring_funcs jpeg_v2_5_dec_ring_vm_funcs 
>> = {



More information about the amd-gfx mailing list