AMD General

-----Original Message-----
From: amd-gfx <[email protected]> On Behalf Of Yang Wang
Sent: Friday, May 8, 2026 8:50 AM
To: [email protected]
Cc: Deucher, Alexander <[email protected]>; Zhang, Hawking 
<[email protected]>; Feng, Kenneth <[email protected]>
Subject: [PATCH] drm/amd/pm: update dpm clock pm attributes for aldebaran (gc 
9.4.2)

Split and correct DPM clock attribute constraints for GFX 9.4.1 (Arcturus) and 
9.4.2 (Aldebaran) ASICs:

- Arcturus (9.4.1): Keep restrictions for mclk/socclk/fclk, update comment
- Aldebaran (9.4.2): Add dedicated per-clock constraints:
  * mclk/socclk: Only support voltage control, disable level setting
  * fclk: Mark as fully unsupported
  * pcie: Move multi-AID check into 9.4.2 case, disable level setting

Signed-off-by: Yang Wang <[email protected]>
---
 drivers/gpu/drm/amd/pm/amdgpu_pm.c | 26 ++++++++++++++++++++------
 1 file changed, 20 insertions(+), 6 deletions(-)

diff --git a/drivers/gpu/drm/amd/pm/amdgpu_pm.c 
b/drivers/gpu/drm/amd/pm/amdgpu_pm.c
index fd2e63530e8c..9ee3053973cf 100644
--- a/drivers/gpu/drm/amd/pm/amdgpu_pm.c
+++ b/drivers/gpu/drm/amd/pm/amdgpu_pm.c
@@ -2033,16 +2033,11 @@ static int pp_dpm_clk_default_attr_update(struct 
amdgpu_device *adev, struct amd
                       gc_ver == IP_VERSION(11, 0, 2) ||
                       gc_ver == IP_VERSION(11, 0, 3)) && 
adev->vcn.num_vcn_inst >= 2))
                        *states = ATTR_STATE_UNSUPPORTED;
-       } else if (DEVICE_ATTR_IS(pp_dpm_pcie)) {
-               if (gc_ver == IP_VERSION(9, 4, 2) ||
-                   amdgpu_is_multi_aid(adev))
-                       *states = ATTR_STATE_UNSUPPORTED;
        }
 AK: With the global pp_dpm_pcie block removed, amdgpu_is_multi_aid(adev) is 
only evaluated inside case IP_VERSION(9, 4, 2). For any other GFX version, 
pp_dpm_pcie is no longer forced to ATTR_STATE_UNSUPPORTED on multi-AID. That 
includes 9.4.3 / 9.4.4 / 9.5.0

Thanks & Regards
Asad

        switch (gc_ver) {
        case IP_VERSION(9, 4, 1):
-       case IP_VERSION(9, 4, 2):
-               /* the Mi series card does not support standalone 
mclk/socclk/fclk level setting */
+               /* Arcturus does not support standalone mclk/socclk/fclk level
+setting */
                if (DEVICE_ATTR_IS(pp_dpm_mclk) ||
                    DEVICE_ATTR_IS(pp_dpm_socclk) ||
                    DEVICE_ATTR_IS(pp_dpm_fclk)) {
@@ -2050,6 +2045,25 @@ static int pp_dpm_clk_default_attr_update(struct 
amdgpu_device *adev, struct amd
                        dev_attr->store = NULL;
                }
                break;
+       case IP_VERSION(9, 4, 2):
+               if (DEVICE_ATTR_IS(pp_dpm_mclk) ||
+                   DEVICE_ATTR_IS(pp_dpm_socclk)) {
+                       /* Aldebaran mclk/socclk DPM only supports voltage 
control,
+                        * not allow to set dpm level directly */
+                       dev_attr->attr.mode &= ~S_IWUGO;
+                       dev_attr->store = NULL;
+               } else if (DEVICE_ATTR_IS(pp_dpm_pcie)) {
+                       if (amdgpu_is_multi_aid(adev)) {
+                               *states = ATTR_STATE_UNSUPPORTED;
+                       } else {
+                               dev_attr->attr.mode &= ~S_IWUGO;
+                               dev_attr->store = NULL;
+                       }
+               } else if (DEVICE_ATTR_IS(pp_dpm_fclk)) {
+                       /* Aldebaran does not support fclk dpm */
+                       *states = ATTR_STATE_UNSUPPORTED;
+               }
+               break;
        default:
                break;
        }
--
2.47.3

Reply via email to