Yes. SMU only provides enabling message.
Thanks,
Eric
On 2018-02-06 03:50 PM, Deucher, Alexander wrote:
-----Original Message-----
From: amd-gfx [mailto:amd-gfx-boun...@lists.freedesktop.org] On Behalf
Of Eric Huang
Sent: Tuesday, February 6, 2018 3:41 PM
To: amd-gfx@lists.freedesktop.org
Cc: Huang, JinHuiEric <jinhuieric.hu...@amd.com>
Subject: [PATCH 1/3] drm/amdgpu: add mmhub powergating set by smu
PSP will disable legacy mmhub PG setting that is programming registers, and
drive will use SMC message to set it up.
Split this into two patches, one to add the new dpm interface, and one to add
the change to mmhub_v1_0.c. I guess presumably there's no way to disable it
once it's been enabled?
With the above addressed:
Reviewed-by: Alex Deucher <alexander.deuc...@amd.com>
Signed-off-by: Eric Huang <jinhuieric.hu...@amd.com>
---
drivers/gpu/drm/amd/amdgpu/amdgpu_dpm.h | 4 ++++
drivers/gpu/drm/amd/amdgpu/mmhub_v1_0.c | 3 +++
drivers/gpu/drm/amd/include/kgd_pp_interface.h | 1 +
3 files changed, 8 insertions(+)
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_dpm.h
b/drivers/gpu/drm/amd/amdgpu/amdgpu_dpm.h
index c489c69..bd745a4 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_dpm.h
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_dpm.h
@@ -375,6 +375,10 @@ enum amdgpu_pcie_gen {
((adev)->powerplay.pp_funcs->odn_edit_dpm_table(\
(adev)->powerplay.pp_handle, type, parameter,
size))
+#define amdgpu_dpm_set_mmhub_powergating_by_smu(adev) \
+ ((adev)->powerplay.pp_funcs-
set_mmhub_powergating_by_smu( \
+ (adev)->powerplay.pp_handle))
+
struct amdgpu_dpm {
struct amdgpu_ps *ps;
/* number of valid power states */
diff --git a/drivers/gpu/drm/amd/amdgpu/mmhub_v1_0.c
b/drivers/gpu/drm/amd/amdgpu/mmhub_v1_0.c
index 82f8bc8..d0ade9f 100644
--- a/drivers/gpu/drm/amd/amdgpu/mmhub_v1_0.c
+++ b/drivers/gpu/drm/amd/amdgpu/mmhub_v1_0.c
@@ -471,6 +471,9 @@ void mmhub_v1_0_update_power_gating(struct
amdgpu_device *adev,
RENG_EXECUTE_ON_REG_UPDATE, 1);
WREG32_SOC15(MMHUB, 0, mmPCTL1_RENG_EXECUTE,
pctl1_reng_execute);
+ if (adev->powerplay.pp_funcs-
set_mmhub_powergating_by_smu)
+
amdgpu_dpm_set_mmhub_powergating_by_smu(adev);
+
} else {
pctl0_reng_execute = REG_SET_FIELD(pctl0_reng_execute,
PCTL0_RENG_EXECUTE,
diff --git a/drivers/gpu/drm/amd/include/kgd_pp_interface.h
b/drivers/gpu/drm/amd/include/kgd_pp_interface.h
index 1fc995b..4f69fe8 100644
--- a/drivers/gpu/drm/amd/include/kgd_pp_interface.h
+++ b/drivers/gpu/drm/amd/include/kgd_pp_interface.h
@@ -310,6 +310,7 @@ struct amd_pm_funcs {
int (*get_power_profile_mode)(void *handle, char *buf);
int (*set_power_profile_mode)(void *handle, long *input, uint32_t
size);
int (*odn_edit_dpm_table)(void *handle, uint32_t type, long *input,
uint32_t size);
+ int (*set_mmhub_powergating_by_smu)(void *handle);
};
#endif
--
2.7.4
_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx
_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx