The logic for checking whether NPM is enabled/disabled stays within the
particular IP version.

Signed-off-by: Lijo Lazar <[email protected]>
---
 drivers/gpu/drm/amd/include/kgd_pp_interface.h        | 1 +
 drivers/gpu/drm/amd/pm/amdgpu_pm.c                    | 9 ++++-----
 drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_12_ppt.c | 3 +++
 drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_6_ppt.c  | 1 +
 drivers/gpu/drm/amd/pm/swsmu/smu15/smu_v15_0_8_ppt.c  | 4 ++++
 5 files changed, 13 insertions(+), 5 deletions(-)

diff --git a/drivers/gpu/drm/amd/include/kgd_pp_interface.h 
b/drivers/gpu/drm/amd/include/kgd_pp_interface.h
index 5e8476c4b808..4b863a2e38f1 100644
--- a/drivers/gpu/drm/amd/include/kgd_pp_interface.h
+++ b/drivers/gpu/drm/amd/include/kgd_pp_interface.h
@@ -172,6 +172,7 @@ enum amd_pp_sensors {
        AMDGPU_PP_SENSOR_MAXNODEPOWERLIMIT,
        AMDGPU_PP_SENSOR_UBB_POWER,
        AMDGPU_PP_SENSOR_UBB_POWER_LIMIT,
+       AMDGPU_PP_SENSOR_NPMSTATUS,
 };
 
 /*
diff --git a/drivers/gpu/drm/amd/pm/amdgpu_pm.c 
b/drivers/gpu/drm/amd/pm/amdgpu_pm.c
index 6f8252376127..c6e3748bb11b 100644
--- a/drivers/gpu/drm/amd/pm/amdgpu_pm.c
+++ b/drivers/gpu/drm/amd/pm/amdgpu_pm.c
@@ -2266,16 +2266,15 @@ static ssize_t amdgpu_show_npm_status(struct device 
*dev,
 {
        struct drm_device *ddev = dev_get_drvdata(dev);
        struct amdgpu_device *adev = drm_to_adev(ddev);
-       u32 npower;
+       u32 npm_status;
        int r;
 
-       /* get the node power */
-       r = amdgpu_pm_get_sensor_generic(adev, AMDGPU_PP_SENSOR_NODEPOWER,
-                                        (void *)&npower);
+       r = amdgpu_pm_get_sensor_generic(adev, AMDGPU_PP_SENSOR_NPMSTATUS,
+                                        (void *)&npm_status);
        if (r)
                return r;
 
-       return sysfs_emit(buf, "%s\n", str_enabled_disabled(npower));
+       return sysfs_emit(buf, "%s\n", str_enabled_disabled(npm_status));
 }
 
 /**
diff --git a/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_12_ppt.c 
b/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_12_ppt.c
index 0ca5973391e8..1691a0be4f7d 100644
--- a/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_12_ppt.c
+++ b/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_12_ppt.c
@@ -685,6 +685,9 @@ int smu_v13_0_12_get_npm_data(struct smu_context *smu,
        case AMDGPU_PP_SENSOR_NODEPOWER:
                *value = SMUQ10_ROUND(metrics->NodePower);
                break;
+       case AMDGPU_PP_SENSOR_NPMSTATUS:
+               *value = !!SMUQ10_ROUND(metrics->NodePower);
+               break;
        case AMDGPU_PP_SENSOR_GPPTRESIDENCY:
                *value = SMUQ10_ROUND(metrics->GlobalPPTResidencyAcc);
                break;
diff --git a/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_6_ppt.c 
b/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_6_ppt.c
index 83a5a4614a4b..95e288327e45 100644
--- a/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_6_ppt.c
+++ b/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_6_ppt.c
@@ -1678,6 +1678,7 @@ static int smu_v13_0_6_read_sensor(struct smu_context 
*smu,
        case AMDGPU_PP_SENSOR_NODEPOWER:
        case AMDGPU_PP_SENSOR_GPPTRESIDENCY:
        case AMDGPU_PP_SENSOR_MAXNODEPOWERLIMIT:
+       case AMDGPU_PP_SENSOR_NPMSTATUS:
                ret = smu_v13_0_12_get_npm_data(smu, sensor, (uint32_t *)data);
                if (ret)
                        return ret;
diff --git a/drivers/gpu/drm/amd/pm/swsmu/smu15/smu_v15_0_8_ppt.c 
b/drivers/gpu/drm/amd/pm/swsmu/smu15/smu_v15_0_8_ppt.c
index b69efaecc1bb..5c8bfe7ecaa3 100644
--- a/drivers/gpu/drm/amd/pm/swsmu/smu15/smu_v15_0_8_ppt.c
+++ b/drivers/gpu/drm/amd/pm/swsmu/smu15/smu_v15_0_8_ppt.c
@@ -618,6 +618,9 @@ static int smu_v15_0_8_get_npm_data(struct smu_context *smu,
        case AMDGPU_PP_SENSOR_NODEPOWER:
                *value = SMUQ10_ROUND(metrics->NodePower);
                break;
+       case AMDGPU_PP_SENSOR_NPMSTATUS:
+               *value = !!SMUQ10_ROUND(metrics->NodePower);
+               break;
        case AMDGPU_PP_SENSOR_GPPTRESIDENCY:
                *value = SMUQ10_ROUND(metrics->GlobalPPTResidencyAcc);
                break;
@@ -681,6 +684,7 @@ static int smu_v15_0_8_read_sensor(struct smu_context *smu,
        case AMDGPU_PP_SENSOR_NODEPOWER:
        case AMDGPU_PP_SENSOR_GPPTRESIDENCY:
        case AMDGPU_PP_SENSOR_MAXNODEPOWERLIMIT:
+       case AMDGPU_PP_SENSOR_NPMSTATUS:
                ret = smu_v15_0_8_get_npm_data(smu, sensor, (uint32_t *)data);
                if (ret)
                        return ret;
-- 
2.49.0

Reply via email to