On 7/13/26 08:14, Timur Kristóf wrote:
> The old radeon driver has a documented workaround in ci_dpm.c
> which claims that Bonaire 0x6658 with old memory controller
> firmware is unstable with MCLK DPM, so as a precaution I
> disabled MCLK DPM on this ASIC in amdgpu.
> 
> Note that the old MC firmware is not actually used with
> amdgpu, but in theory it's possible that the VBIOS sets
> up the ASIC with an old MC firmware that is already running
> when amdgpu initializes (in which case amdgpu doesn't
> load its own firmware).
> 
> What I expected to happen is that the GPU would simply use
> its maximum memory clock, and indeed this is what seemed
> to happen according to amdgpu_pm_info which reads the
> current MCLK value from the SMU.
> However, some users reported a huge perf regression

Were those private reports? If not, please consider linking them in the
trailers using Link: or Closes: tags, as explained in the patch
submission guidelines (and mandated by Linus, see the quotes and links
in
https://www.kernel.org/doc/html/latest/process/handling-regressions.html#on-the-importance-of-pointing-to-bug-reports-using-link-closes-tags
for details).

Ciao, Thorsten

> and upon a closer look it seems that the GPU seems to
> not actually use the highest MCLK value, despite the SMU
> reporting that it does.
> 
> Let's not disable MCLK DPM on Bonaire 0x6658 (R7 260X).
> 
> Keep MCLK DPM disabled on R9 M380 in the 2015 iMac
> because that still hangs if we enable it.
> 
> Fixes: 9851f29cb06c ("drm/amd/pm/ci: Disable MCLK DPM on problematic CI 
> ASICs")
> Signed-off-by: Timur Kristóf <[email protected]>
> ---
>  drivers/gpu/drm/amd/pm/powerplay/hwmgr/hwmgr.c | 7 ++-----
>  1 file changed, 2 insertions(+), 5 deletions(-)
> 
> diff --git a/drivers/gpu/drm/amd/pm/powerplay/hwmgr/hwmgr.c 
> b/drivers/gpu/drm/amd/pm/powerplay/hwmgr/hwmgr.c
> index 1d6e30269d56..4d553be56396 100644
> --- a/drivers/gpu/drm/amd/pm/powerplay/hwmgr/hwmgr.c
> +++ b/drivers/gpu/drm/amd/pm/powerplay/hwmgr/hwmgr.c
> @@ -106,11 +106,8 @@ int hwmgr_early_init(struct pp_hwmgr *hwmgr)
>               hwmgr->od_enabled = false;
>               switch (hwmgr->chip_id) {
>               case CHIP_BONAIRE:
> -                     /* R9 M380 in iMac 2015: SMU hangs when enabling MCLK 
> DPM
> -                      * R7 260X cards with old MC ucode: MCLK DPM is unstable
> -                      */
> -                     if (adev->pdev->subsystem_vendor == 0x106B ||
> -                         adev->pdev->device == 0x6658) {
> +                     /* R9 M380 in iMac 2015: SMU hangs when enabling MCLK 
> DPM */
> +                     if (adev->pdev->subsystem_vendor == 0x106B) {
>                               dev_info(adev->dev, "disabling MCLK DPM on 
> quirky ASIC");
>                               adev->pm.pp_feature &= ~PP_MCLK_DPM_MASK;
>                               hwmgr->feature_mask &= ~PP_MCLK_DPM_MASK;

Reply via email to