drm/amdgpu/swsmu: implement power metrics for RENOIR
Grab the data from the SMU metrics table. Reviewed-by: Evan Quan <evan.quan@amd.com> Acked-by: Nirmoy Das <nirmoy.das@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
parent
61426114f2
commit
b49dc928f5
@ -637,6 +637,23 @@ static int renoir_get_vddc(struct smu_context *smu, uint32_t *value,
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int renoir_get_power(struct smu_context *smu, uint32_t *value)
|
||||
{
|
||||
int ret = 0;
|
||||
SmuMetrics_t metrics;
|
||||
|
||||
if (!value)
|
||||
return -EINVAL;
|
||||
|
||||
ret = smu_cmn_get_metrics_table(smu, &metrics, false);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
*value = metrics.CurrentSocketPower << 8;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* This interface get dpm clock table for dc
|
||||
*/
|
||||
@ -981,6 +998,10 @@ static int renoir_read_sensor(struct smu_context *smu,
|
||||
ret = renoir_get_vddc(smu, (uint32_t *)data, 1);
|
||||
*size = 4;
|
||||
break;
|
||||
case AMDGPU_PP_SENSOR_GPU_POWER:
|
||||
ret = renoir_get_power(smu, (uint32_t *)data);
|
||||
*size = 4;
|
||||
break;
|
||||
default:
|
||||
ret = -EOPNOTSUPP;
|
||||
break;
|
||||
|
Loading…
x
Reference in New Issue
Block a user