From: Asad Kamal <[email protected]>

Update pm attributes show/hide for gc_v12_1_0

v2: Use multi-aid check (Lijo)

Signed-off-by: Asad Kamal <[email protected]>
Reviewed-by: Lijo Lazar <[email protected]>
Signed-off-by: Alex Deucher <[email protected]>
---
 drivers/gpu/drm/amd/pm/amdgpu_pm.c | 36 +++++++++---------------------
 1 file changed, 10 insertions(+), 26 deletions(-)

diff --git a/drivers/gpu/drm/amd/pm/amdgpu_pm.c 
b/drivers/gpu/drm/amd/pm/amdgpu_pm.c
index 938361ecae055..a1c87f9710f40 100644
--- a/drivers/gpu/drm/amd/pm/amdgpu_pm.c
+++ b/drivers/gpu/drm/amd/pm/amdgpu_pm.c
@@ -1910,8 +1910,6 @@ static int ss_bias_attr_update(struct amdgpu_device 
*adev, struct amdgpu_device_
 static int pp_od_clk_voltage_attr_update(struct amdgpu_device *adev, struct 
amdgpu_device_attr *attr,
                                         uint32_t mask, enum 
amdgpu_device_attr_states *states)
 {
-       uint32_t gc_ver = amdgpu_ip_version(adev, GC_HWIP, 0);
-
        *states = ATTR_STATE_SUPPORTED;
 
        if (!amdgpu_dpm_is_overdrive_supported(adev)) {
@@ -1919,10 +1917,8 @@ static int pp_od_clk_voltage_attr_update(struct 
amdgpu_device *adev, struct amdg
                return 0;
        }
 
-       /* Enable pp_od_clk_voltage node for gc 9.4.3, 9.4.4, 9.5.0 SRIOV/BM 
support */
-       if (gc_ver == IP_VERSION(9, 4, 3) ||
-           gc_ver == IP_VERSION(9, 4, 4) ||
-           gc_ver == IP_VERSION(9, 5, 0)) {
+       /* Enable pp_od_clk_voltage node for gc 9.4.3, 9.4.4, 9.5.0, 12.1.0 
SRIOV/BM support */
+       if (amdgpu_is_multi_aid(adev)) {
                if (amdgpu_sriov_multi_vf_mode(adev))
                        *states = ATTR_STATE_UNSUPPORTED;
                return 0;
@@ -2000,9 +1996,7 @@ static int pp_dpm_clk_default_attr_update(struct 
amdgpu_device *adev, struct amd
                      gc_ver == IP_VERSION(11, 5, 0) ||
                      gc_ver == IP_VERSION(11, 0, 2) ||
                      gc_ver == IP_VERSION(11, 0, 3) ||
-                     gc_ver == IP_VERSION(9, 4, 3) ||
-                     gc_ver == IP_VERSION(9, 4, 4) ||
-                     gc_ver == IP_VERSION(9, 5, 0)))
+                     amdgpu_is_multi_aid(adev)))
                        *states = ATTR_STATE_UNSUPPORTED;
        } else if (DEVICE_ATTR_IS(pp_dpm_vclk1)) {
                if (!((gc_ver == IP_VERSION(10, 3, 1) ||
@@ -2023,9 +2017,7 @@ static int pp_dpm_clk_default_attr_update(struct 
amdgpu_device *adev, struct amd
                      gc_ver == IP_VERSION(11, 5, 0) ||
                      gc_ver == IP_VERSION(11, 0, 2) ||
                      gc_ver == IP_VERSION(11, 0, 3) ||
-                     gc_ver == IP_VERSION(9, 4, 3) ||
-                     gc_ver == IP_VERSION(9, 4, 4) ||
-                     gc_ver == IP_VERSION(9, 5, 0)))
+                     amdgpu_is_multi_aid(adev)))
                        *states = ATTR_STATE_UNSUPPORTED;
        } else if (DEVICE_ATTR_IS(pp_dpm_dclk1)) {
                if (!((gc_ver == IP_VERSION(10, 3, 1) ||
@@ -2035,9 +2027,7 @@ static int pp_dpm_clk_default_attr_update(struct 
amdgpu_device *adev, struct amd
                        *states = ATTR_STATE_UNSUPPORTED;
        } else if (DEVICE_ATTR_IS(pp_dpm_pcie)) {
                if (gc_ver == IP_VERSION(9, 4, 2) ||
-                   gc_ver == IP_VERSION(9, 4, 3) ||
-                   gc_ver == IP_VERSION(9, 4, 4) ||
-                   gc_ver == IP_VERSION(9, 5, 0))
+                   amdgpu_is_multi_aid(adev))
                        *states = ATTR_STATE_UNSUPPORTED;
        }
 
@@ -2651,6 +2641,7 @@ static int default_attr_update(struct amdgpu_device 
*adev, struct amdgpu_device_
                case IP_VERSION(11, 0, 3):
                case IP_VERSION(12, 0, 0):
                case IP_VERSION(12, 0, 1):
+               case IP_VERSION(12, 1, 0):
                        *states = ATTR_STATE_SUPPORTED;
                        break;
                default:
@@ -3732,8 +3723,7 @@ static umode_t hwmon_attributes_visible(struct kobject 
*kobj,
 
        /* Skip crit temp on APU */
        if ((((adev->flags & AMD_IS_APU) && (adev->family >= AMDGPU_FAMILY_CZ)) 
||
-           (gc_ver == IP_VERSION(9, 4, 3) || gc_ver == IP_VERSION(9, 4, 4) ||
-            gc_ver == IP_VERSION(9, 5, 0))) &&
+            amdgpu_is_multi_aid(adev)) &&
            (attr == &sensor_dev_attr_temp1_crit.dev_attr.attr ||
             attr == &sensor_dev_attr_temp1_crit_hyst.dev_attr.attr))
                return 0;
@@ -3815,18 +3805,14 @@ static umode_t hwmon_attributes_visible(struct kobject 
*kobj,
 
        if ((adev->family == AMDGPU_FAMILY_SI ||        /* not implemented yet 
*/
             adev->family == AMDGPU_FAMILY_KV ||        /* not implemented yet 
*/
-            (gc_ver == IP_VERSION(9, 4, 3) ||
-             gc_ver == IP_VERSION(9, 4, 4) ||
-             gc_ver == IP_VERSION(9, 5, 0))) &&
+            amdgpu_is_multi_aid(adev)) &&
            (attr == &sensor_dev_attr_in0_input.dev_attr.attr ||
             attr == &sensor_dev_attr_in0_label.dev_attr.attr))
                return 0;
 
        /* only APUs other than gc 9,4,3 have vddnb */
        if ((!(adev->flags & AMD_IS_APU) ||
-            (gc_ver == IP_VERSION(9, 4, 3) ||
-             gc_ver == IP_VERSION(9, 4, 4) ||
-             gc_ver == IP_VERSION(9, 5, 0))) &&
+            amdgpu_is_multi_aid(adev)) &&
            (attr == &sensor_dev_attr_in1_input.dev_attr.attr ||
             attr == &sensor_dev_attr_in1_label.dev_attr.attr))
                return 0;
@@ -3855,9 +3841,7 @@ static umode_t hwmon_attributes_visible(struct kobject 
*kobj,
                return 0;
 
        /* hotspot temperature for gc 9,4,3*/
-       if (gc_ver == IP_VERSION(9, 4, 3) ||
-           gc_ver == IP_VERSION(9, 4, 4) ||
-           gc_ver == IP_VERSION(9, 5, 0)) {
+       if (amdgpu_is_multi_aid(adev)) {
                if (attr == &sensor_dev_attr_temp1_input.dev_attr.attr ||
                    attr == &sensor_dev_attr_temp1_emergency.dev_attr.attr ||
                    attr == &sensor_dev_attr_temp1_label.dev_attr.attr)
-- 
2.53.0

Reply via email to