Commit 767fb6b3 authored by Evan Quan's avatar Evan Quan Committed by Alex Deucher

drm/amd/powerplay: expose SMU7 asics realtime memory utilization

Enable realtime memory utilization report on SMU7 asics.
Signed-off-by: default avatarEvan Quan <evan.quan@amd.com>
Reviewed-by: default avatarAlex Deucher <alexander.deucher@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent 271151d8
...@@ -3532,9 +3532,12 @@ static int smu7_read_sensor(struct pp_hwmgr *hwmgr, int idx, ...@@ -3532,9 +3532,12 @@ static int smu7_read_sensor(struct pp_hwmgr *hwmgr, int idx,
*size = 4; *size = 4;
return 0; return 0;
case AMDGPU_PP_SENSOR_GPU_LOAD: case AMDGPU_PP_SENSOR_GPU_LOAD:
case AMDGPU_PP_SENSOR_MEM_LOAD:
offset = data->soft_regs_start + smum_get_offsetof(hwmgr, offset = data->soft_regs_start + smum_get_offsetof(hwmgr,
SMU_SoftRegisters, SMU_SoftRegisters,
AverageGraphicsActivity); (idx == AMDGPU_PP_SENSOR_GPU_LOAD) ?
AverageGraphicsActivity:
AverageMemoryActivity);
activity_percent = cgs_read_ind_register(hwmgr->device, CGS_IND_REG__SMC, offset); activity_percent = cgs_read_ind_register(hwmgr->device, CGS_IND_REG__SMC, offset);
activity_percent += 0x80; activity_percent += 0x80;
......
...@@ -41,6 +41,7 @@ enum SMU_MEMBER { ...@@ -41,6 +41,7 @@ enum SMU_MEMBER {
HandshakeDisables = 0, HandshakeDisables = 0,
VoltageChangeTimeout, VoltageChangeTimeout,
AverageGraphicsActivity, AverageGraphicsActivity,
AverageMemoryActivity,
PreVBlankGap, PreVBlankGap,
VBlankTimeout, VBlankTimeout,
UcodeLoadStatus, UcodeLoadStatus,
......
...@@ -2254,6 +2254,8 @@ static uint32_t ci_get_offsetof(uint32_t type, uint32_t member) ...@@ -2254,6 +2254,8 @@ static uint32_t ci_get_offsetof(uint32_t type, uint32_t member)
return offsetof(SMU7_SoftRegisters, VoltageChangeTimeout); return offsetof(SMU7_SoftRegisters, VoltageChangeTimeout);
case AverageGraphicsActivity: case AverageGraphicsActivity:
return offsetof(SMU7_SoftRegisters, AverageGraphicsA); return offsetof(SMU7_SoftRegisters, AverageGraphicsA);
case AverageMemoryActivity:
return offsetof(SMU7_SoftRegisters, AverageMemoryA);
case PreVBlankGap: case PreVBlankGap:
return offsetof(SMU7_SoftRegisters, PreVBlankGap); return offsetof(SMU7_SoftRegisters, PreVBlankGap);
case VBlankTimeout: case VBlankTimeout:
......
...@@ -2304,6 +2304,8 @@ static uint32_t fiji_get_offsetof(uint32_t type, uint32_t member) ...@@ -2304,6 +2304,8 @@ static uint32_t fiji_get_offsetof(uint32_t type, uint32_t member)
return offsetof(SMU73_SoftRegisters, VoltageChangeTimeout); return offsetof(SMU73_SoftRegisters, VoltageChangeTimeout);
case AverageGraphicsActivity: case AverageGraphicsActivity:
return offsetof(SMU73_SoftRegisters, AverageGraphicsActivity); return offsetof(SMU73_SoftRegisters, AverageGraphicsActivity);
case AverageMemoryActivity:
return offsetof(SMU73_SoftRegisters, AverageMemoryActivity);
case PreVBlankGap: case PreVBlankGap:
return offsetof(SMU73_SoftRegisters, PreVBlankGap); return offsetof(SMU73_SoftRegisters, PreVBlankGap);
case VBlankTimeout: case VBlankTimeout:
......
...@@ -2219,6 +2219,8 @@ static uint32_t iceland_get_offsetof(uint32_t type, uint32_t member) ...@@ -2219,6 +2219,8 @@ static uint32_t iceland_get_offsetof(uint32_t type, uint32_t member)
return offsetof(SMU71_SoftRegisters, VoltageChangeTimeout); return offsetof(SMU71_SoftRegisters, VoltageChangeTimeout);
case AverageGraphicsActivity: case AverageGraphicsActivity:
return offsetof(SMU71_SoftRegisters, AverageGraphicsActivity); return offsetof(SMU71_SoftRegisters, AverageGraphicsActivity);
case AverageMemoryActivity:
return offsetof(SMU71_SoftRegisters, AverageMemoryActivity);
case PreVBlankGap: case PreVBlankGap:
return offsetof(SMU71_SoftRegisters, PreVBlankGap); return offsetof(SMU71_SoftRegisters, PreVBlankGap);
case VBlankTimeout: case VBlankTimeout:
......
...@@ -2313,6 +2313,8 @@ static uint32_t polaris10_get_offsetof(uint32_t type, uint32_t member) ...@@ -2313,6 +2313,8 @@ static uint32_t polaris10_get_offsetof(uint32_t type, uint32_t member)
return offsetof(SMU74_SoftRegisters, VoltageChangeTimeout); return offsetof(SMU74_SoftRegisters, VoltageChangeTimeout);
case AverageGraphicsActivity: case AverageGraphicsActivity:
return offsetof(SMU74_SoftRegisters, AverageGraphicsActivity); return offsetof(SMU74_SoftRegisters, AverageGraphicsActivity);
case AverageMemoryActivity:
return offsetof(SMU74_SoftRegisters, AverageMemoryActivity);
case PreVBlankGap: case PreVBlankGap:
return offsetof(SMU74_SoftRegisters, PreVBlankGap); return offsetof(SMU74_SoftRegisters, PreVBlankGap);
case VBlankTimeout: case VBlankTimeout:
......
...@@ -2611,6 +2611,8 @@ static uint32_t tonga_get_offsetof(uint32_t type, uint32_t member) ...@@ -2611,6 +2611,8 @@ static uint32_t tonga_get_offsetof(uint32_t type, uint32_t member)
return offsetof(SMU72_SoftRegisters, VoltageChangeTimeout); return offsetof(SMU72_SoftRegisters, VoltageChangeTimeout);
case AverageGraphicsActivity: case AverageGraphicsActivity:
return offsetof(SMU72_SoftRegisters, AverageGraphicsActivity); return offsetof(SMU72_SoftRegisters, AverageGraphicsActivity);
case AverageMemoryActivity:
return offsetof(SMU72_SoftRegisters, AverageMemoryActivity);
case PreVBlankGap: case PreVBlankGap:
return offsetof(SMU72_SoftRegisters, PreVBlankGap); return offsetof(SMU72_SoftRegisters, PreVBlankGap);
case VBlankTimeout: case VBlankTimeout:
......
...@@ -2167,6 +2167,8 @@ static uint32_t vegam_get_offsetof(uint32_t type, uint32_t member) ...@@ -2167,6 +2167,8 @@ static uint32_t vegam_get_offsetof(uint32_t type, uint32_t member)
return offsetof(SMU75_SoftRegisters, VoltageChangeTimeout); return offsetof(SMU75_SoftRegisters, VoltageChangeTimeout);
case AverageGraphicsActivity: case AverageGraphicsActivity:
return offsetof(SMU75_SoftRegisters, AverageGraphicsActivity); return offsetof(SMU75_SoftRegisters, AverageGraphicsActivity);
case AverageMemoryActivity:
return offsetof(SMU75_SoftRegisters, AverageMemoryActivity);
case PreVBlankGap: case PreVBlankGap:
return offsetof(SMU75_SoftRegisters, PreVBlankGap); return offsetof(SMU75_SoftRegisters, PreVBlankGap);
case VBlankTimeout: case VBlankTimeout:
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment