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
