[Public]

>-----Original Message-----
>From: amd-gfx <[email protected]> On Behalf Of Ilya
>Zlobintsev
>Sent: Saturday, October 11, 2025 7:17 PM
>To: [email protected]
>Cc: Ilya Zlobintsev <[email protected]>
>Subject: [PATCH 0/2] drm/amd/pm: Avoid writing nulls into
>`pp_od_clk_voltage`
>
>Previously, reading from the `pp_od_clk_voltage` sysfs file would include lots 
>of
>null bytes between the sections, e.g.:
>
>$ cat -v /sys/class/drm/card0/device/pp_od_clk_voltage
>OD_SCLK:
>0: 500Mhz
>1: 2514Mhz
>OD_MCLK:
>0: 97Mhz
>1: 1000MHz
>^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^
>@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@
>^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^
>@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@
>^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^
>@^@OD_VDDGFX_OFFSET:
>0mV
>^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^
>@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@
>^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^
>@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@
>^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^
>@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@
>^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^
>@^@^@^@^@^@^@^@^@^@^@^@^@^@OD_RANGE:
>SCLK:     500Mhz       3000Mhz
>MCLK:     674Mhz       1075Mhz
>
>The reason for this is that calling `smu_cmn_get_sysfs_buf` aligns the offset
>used for `sysfs_emit_at` to the current page boundary, and then gets returned
>from the various `print_clk_levels` implementations to be directly added to the
>buffer position. Instead, only the relative offset showing how much was written
>to the buffer should be returned, regardless of how it was changed for
>alignment purposes.
>
>Now, the file is clean without any garbage data:
>
>$ cat -v /sys/class/drm/card0/device/pp_od_clk_voltage
>OD_SCLK:
>0: 500Mhz
>1: 2519Mhz
>OD_MCLK:
>0: 97Mhz
>1: 1000MHz
>OD_VDDGFX_OFFSET:
>0mV
>OD_RANGE:
>SCLK:     500Mhz       3000Mhz
>MCLK:     674Mhz       1075Mhz
>
>I have changed this for SMU11, SMU13 and SMU14 as there have been user
>reports of this issue on all three, and the code is the same between them.
>However, I only have access to a 6900XT (SMU11), so the newer ones are
>untested. I've split the change into separate patches for
>SMU11 (tested) and SMU13/14 (untested), in case you believe that this
>change is risky and could break something.
>
>Sidenote: This is also my first time submitting patches to a mailing list, so 
>please
>tell me if there are any issues with the patch or email formatting.
>
>Signed-off-by: Ilya Zlobintsev <[email protected]>
>
>Ilya Zlobintsev (2):
>  drm/amd/pm: Avoid writing nulls into `pp_od_clk_voltage` (SMU11)
>  drm/amd/pm: Avoid writing nulls into `pp_od_clk_voltage` (SMU13/SMU14)
>
> drivers/gpu/drm/amd/pm/swsmu/smu11/sienna_cichlid_ppt.c | 5 +++--
> drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_0_ppt.c    | 5 +++--
> drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_4_ppt.c    | 5 +++--
> drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_6_ppt.c    | 5 +++--
> drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_7_ppt.c    | 5 +++--
> drivers/gpu/drm/amd/pm/swsmu/smu13/yellow_carp_ppt.c    | 5 +++--
> drivers/gpu/drm/amd/pm/swsmu/smu14/smu_v14_0_0_ppt.c    | 5 +++--
> drivers/gpu/drm/amd/pm/swsmu/smu14/smu_v14_0_2_ppt.c    | 5 +++--
> 8 files changed, 24 insertions(+), 16 deletions(-)
[lijo]

Unfortunately, there are a few more. A grep of smu_cmn_get_sysfs_buf will show 
the files. Would you mind fixing them as well?

Thanks,
Lijo

>
>--
>2.51.0

Reply via email to