drm/amd/powerplay: expose SMU7 asics realtime memory utilization
authorEvan Quan <evan.quan@amd.com>
Wed, 24 Apr 2019 07:46:50 +0000 (15:46 +0800)
committerAlex Deucher <alexander.deucher@amd.com>
Fri, 24 May 2019 17:20:48 +0000 (12:20 -0500)
Enable realtime memory utilization report on SMU7 asics.

Signed-off-by: Evan Quan <evan.quan@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/powerplay/hwmgr/smu7_hwmgr.c
drivers/gpu/drm/amd/powerplay/inc/smumgr.h
drivers/gpu/drm/amd/powerplay/smumgr/ci_smumgr.c
drivers/gpu/drm/amd/powerplay/smumgr/fiji_smumgr.c
drivers/gpu/drm/amd/powerplay/smumgr/iceland_smumgr.c
drivers/gpu/drm/amd/powerplay/smumgr/polaris10_smumgr.c
drivers/gpu/drm/amd/powerplay/smumgr/tonga_smumgr.c
drivers/gpu/drm/amd/powerplay/smumgr/vegam_smumgr.c

index 048757e8f49493c46edec495874891b1cd4073cf..16591be8b0ca3259389347de78066c02eb06f747 100644 (file)
@@ -3532,9 +3532,12 @@ static int smu7_read_sensor(struct pp_hwmgr *hwmgr, int idx,
                *size = 4;
                return 0;
        case AMDGPU_PP_SENSOR_GPU_LOAD:
+       case AMDGPU_PP_SENSOR_MEM_LOAD:
                offset = data->soft_regs_start + smum_get_offsetof(hwmgr,
                                                                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 += 0x80;
index 82550a8a3a3fc28916db07e603c8cbce3bdc33ff..c5288831aa15c29b244203b5604ee734fc5e6a0e 100644 (file)
@@ -41,6 +41,7 @@ enum SMU_MEMBER {
        HandshakeDisables = 0,
        VoltageChangeTimeout,
        AverageGraphicsActivity,
+       AverageMemoryActivity,
        PreVBlankGap,
        VBlankTimeout,
        UcodeLoadStatus,
index 669bd0c2a16c6ca6b936c93f009e7d447c322c33..9ef57fcf7e786eb39382174daadd58c88ca4de6a 100644 (file)
@@ -2254,6 +2254,8 @@ static uint32_t ci_get_offsetof(uint32_t type, uint32_t member)
                        return offsetof(SMU7_SoftRegisters, VoltageChangeTimeout);
                case AverageGraphicsActivity:
                        return offsetof(SMU7_SoftRegisters, AverageGraphicsA);
+               case AverageMemoryActivity:
+                       return offsetof(SMU7_SoftRegisters, AverageMemoryA);
                case PreVBlankGap:
                        return offsetof(SMU7_SoftRegisters, PreVBlankGap);
                case VBlankTimeout:
index bc8375cbf297c709e26490a1eb07e5e801e64c23..0ce85b73338ec7b5c9673504c5aeb43038d39283 100644 (file)
@@ -2304,6 +2304,8 @@ static uint32_t fiji_get_offsetof(uint32_t type, uint32_t member)
                        return offsetof(SMU73_SoftRegisters, VoltageChangeTimeout);
                case AverageGraphicsActivity:
                        return offsetof(SMU73_SoftRegisters, AverageGraphicsActivity);
+               case AverageMemoryActivity:
+                       return offsetof(SMU73_SoftRegisters, AverageMemoryActivity);
                case PreVBlankGap:
                        return offsetof(SMU73_SoftRegisters, PreVBlankGap);
                case VBlankTimeout:
index 375ccf6ff5f2e257d9e852f3f2f667bdfa6c8ba9..f24f13d77808568d8fb99b9cffb241405eae669f 100644 (file)
@@ -2219,6 +2219,8 @@ static uint32_t iceland_get_offsetof(uint32_t type, uint32_t member)
                        return offsetof(SMU71_SoftRegisters, VoltageChangeTimeout);
                case AverageGraphicsActivity:
                        return offsetof(SMU71_SoftRegisters, AverageGraphicsActivity);
+               case AverageMemoryActivity:
+                       return offsetof(SMU71_SoftRegisters, AverageMemoryActivity);
                case PreVBlankGap:
                        return offsetof(SMU71_SoftRegisters, PreVBlankGap);
                case VBlankTimeout:
index 2d4cfe14f72e03353c84aad2835a41ed91d85f44..0d8958e71b94f8ef52afee87c7833f6136d3c0ce 100644 (file)
@@ -2313,6 +2313,8 @@ static uint32_t polaris10_get_offsetof(uint32_t type, uint32_t member)
                        return offsetof(SMU74_SoftRegisters, VoltageChangeTimeout);
                case AverageGraphicsActivity:
                        return offsetof(SMU74_SoftRegisters, AverageGraphicsActivity);
+               case AverageMemoryActivity:
+                       return offsetof(SMU74_SoftRegisters, AverageMemoryActivity);
                case PreVBlankGap:
                        return offsetof(SMU74_SoftRegisters, PreVBlankGap);
                case VBlankTimeout:
index 3ed6c5f1e5cfca309d3c9ef22582c23fb7570165..060c0f7f523852991ea809b1d9a3a447c62db706 100644 (file)
@@ -2611,6 +2611,8 @@ static uint32_t tonga_get_offsetof(uint32_t type, uint32_t member)
                        return offsetof(SMU72_SoftRegisters, VoltageChangeTimeout);
                case AverageGraphicsActivity:
                        return offsetof(SMU72_SoftRegisters, AverageGraphicsActivity);
+               case AverageMemoryActivity:
+                       return offsetof(SMU72_SoftRegisters, AverageMemoryActivity);
                case PreVBlankGap:
                        return offsetof(SMU72_SoftRegisters, PreVBlankGap);
                case VBlankTimeout:
index 1e69300f6175666b585741a25fb5937fdd3a9203..d499204b2184508aa66f6d3e320bf535cb63b9e4 100644 (file)
@@ -2167,6 +2167,8 @@ static uint32_t vegam_get_offsetof(uint32_t type, uint32_t member)
                        return offsetof(SMU75_SoftRegisters, VoltageChangeTimeout);
                case AverageGraphicsActivity:
                        return offsetof(SMU75_SoftRegisters, AverageGraphicsActivity);
+               case AverageMemoryActivity:
+                       return offsetof(SMU75_SoftRegisters, AverageMemoryActivity);
                case PreVBlankGap:
                        return offsetof(SMU75_SoftRegisters, PreVBlankGap);
                case VBlankTimeout: