aboutsummaryrefslogtreecommitdiffstats
path: root/common/recipes-kernel/linux/linux-yocto-4.14.71/0947-drm-amd-powerplay-Make-use-of-PP_CAP-in-smu7_powertu.patch
diff options
context:
space:
mode:
Diffstat (limited to 'common/recipes-kernel/linux/linux-yocto-4.14.71/0947-drm-amd-powerplay-Make-use-of-PP_CAP-in-smu7_powertu.patch')
-rw-r--r--common/recipes-kernel/linux/linux-yocto-4.14.71/0947-drm-amd-powerplay-Make-use-of-PP_CAP-in-smu7_powertu.patch138
1 files changed, 138 insertions, 0 deletions
diff --git a/common/recipes-kernel/linux/linux-yocto-4.14.71/0947-drm-amd-powerplay-Make-use-of-PP_CAP-in-smu7_powertu.patch b/common/recipes-kernel/linux/linux-yocto-4.14.71/0947-drm-amd-powerplay-Make-use-of-PP_CAP-in-smu7_powertu.patch
new file mode 100644
index 00000000..bfd91412
--- /dev/null
+++ b/common/recipes-kernel/linux/linux-yocto-4.14.71/0947-drm-amd-powerplay-Make-use-of-PP_CAP-in-smu7_powertu.patch
@@ -0,0 +1,138 @@
+From c7f0f2b182dd8a3572452e9b7e3ee2e3490b45f6 Mon Sep 17 00:00:00 2001
+From: Tom St Denis <tom.stdenis@amd.com>
+Date: Tue, 12 Sep 2017 10:01:34 -0400
+Subject: [PATCH 0947/4131] drm/amd/powerplay: Make use of PP_CAP in
+ smu7_powertune.c
+
+Signed-off-by: Tom St Denis <tom.stdenis@amd.com>
+Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
+---
+ .../gpu/drm/amd/powerplay/hwmgr/smu7_powertune.c | 42 ++++++++++------------
+ 1 file changed, 18 insertions(+), 24 deletions(-)
+
+diff --git a/drivers/gpu/drm/amd/powerplay/hwmgr/smu7_powertune.c b/drivers/gpu/drm/amd/powerplay/hwmgr/smu7_powertune.c
+index 12856de..25c302a 100644
+--- a/drivers/gpu/drm/amd/powerplay/hwmgr/smu7_powertune.c
++++ b/drivers/gpu/drm/amd/powerplay/hwmgr/smu7_powertune.c
+@@ -679,7 +679,7 @@ static int smu7_enable_didt(struct pp_hwmgr *hwmgr, const bool enable)
+ else
+ didt_block = DIDTBlock_Info;
+
+- block_en = phm_cap_enabled(hwmgr->platform_descriptor.platformCaps, PHM_PlatformCaps_SQRamping) ? en : 0;
++ block_en = PP_CAP(PHM_PlatformCaps_SQRamping) ? en : 0;
+
+ data = cgs_read_ind_register(hwmgr->device, CGS_IND_REG__DIDT, ixDIDT_SQ_CTRL0);
+ data &= ~DIDT_SQ_CTRL0__DIDT_CTRL_EN_MASK;
+@@ -688,7 +688,7 @@ static int smu7_enable_didt(struct pp_hwmgr *hwmgr, const bool enable)
+ didt_block &= ~SQ_Enable_MASK;
+ didt_block |= block_en << SQ_Enable_SHIFT;
+
+- block_en = phm_cap_enabled(hwmgr->platform_descriptor.platformCaps, PHM_PlatformCaps_DBRamping) ? en : 0;
++ block_en = PP_CAP(PHM_PlatformCaps_DBRamping) ? en : 0;
+
+ data = cgs_read_ind_register(hwmgr->device, CGS_IND_REG__DIDT, ixDIDT_DB_CTRL0);
+ data &= ~DIDT_DB_CTRL0__DIDT_CTRL_EN_MASK;
+@@ -697,7 +697,7 @@ static int smu7_enable_didt(struct pp_hwmgr *hwmgr, const bool enable)
+ didt_block &= ~DB_Enable_MASK;
+ didt_block |= block_en << DB_Enable_SHIFT;
+
+- block_en = phm_cap_enabled(hwmgr->platform_descriptor.platformCaps, PHM_PlatformCaps_TDRamping) ? en : 0;
++ block_en = PP_CAP(PHM_PlatformCaps_TDRamping) ? en : 0;
+ data = cgs_read_ind_register(hwmgr->device, CGS_IND_REG__DIDT, ixDIDT_TD_CTRL0);
+ data &= ~DIDT_TD_CTRL0__DIDT_CTRL_EN_MASK;
+ data |= ((block_en << DIDT_TD_CTRL0__DIDT_CTRL_EN__SHIFT) & DIDT_TD_CTRL0__DIDT_CTRL_EN_MASK);
+@@ -705,7 +705,7 @@ static int smu7_enable_didt(struct pp_hwmgr *hwmgr, const bool enable)
+ didt_block &= ~TD_Enable_MASK;
+ didt_block |= block_en << TD_Enable_SHIFT;
+
+- block_en = phm_cap_enabled(hwmgr->platform_descriptor.platformCaps, PHM_PlatformCaps_TCPRamping) ? en : 0;
++ block_en = PP_CAP(PHM_PlatformCaps_TCPRamping) ? en : 0;
+
+ data = cgs_read_ind_register(hwmgr->device, CGS_IND_REG__DIDT, ixDIDT_TCP_CTRL0);
+ data &= ~DIDT_TCP_CTRL0__DIDT_CTRL_EN_MASK;
+@@ -796,10 +796,10 @@ int smu7_enable_didt_config(struct pp_hwmgr *hwmgr)
+ if (result == 0)
+ num_se = sys_info.value;
+
+- if (phm_cap_enabled(hwmgr->platform_descriptor.platformCaps, PHM_PlatformCaps_SQRamping) ||
+- phm_cap_enabled(hwmgr->platform_descriptor.platformCaps, PHM_PlatformCaps_DBRamping) ||
+- phm_cap_enabled(hwmgr->platform_descriptor.platformCaps, PHM_PlatformCaps_TDRamping) ||
+- phm_cap_enabled(hwmgr->platform_descriptor.platformCaps, PHM_PlatformCaps_TCPRamping)) {
++ if (PP_CAP(PHM_PlatformCaps_SQRamping) ||
++ PP_CAP(PHM_PlatformCaps_DBRamping) ||
++ PP_CAP(PHM_PlatformCaps_TDRamping) ||
++ PP_CAP(PHM_PlatformCaps_TCPRamping)) {
+
+ cgs_enter_safe_mode(hwmgr->device, true);
+ value = 0;
+@@ -851,10 +851,10 @@ int smu7_disable_didt_config(struct pp_hwmgr *hwmgr)
+ {
+ int result;
+
+- if (phm_cap_enabled(hwmgr->platform_descriptor.platformCaps, PHM_PlatformCaps_SQRamping) ||
+- phm_cap_enabled(hwmgr->platform_descriptor.platformCaps, PHM_PlatformCaps_DBRamping) ||
+- phm_cap_enabled(hwmgr->platform_descriptor.platformCaps, PHM_PlatformCaps_TDRamping) ||
+- phm_cap_enabled(hwmgr->platform_descriptor.platformCaps, PHM_PlatformCaps_TCPRamping)) {
++ if (PP_CAP(PHM_PlatformCaps_SQRamping) ||
++ PP_CAP(PHM_PlatformCaps_DBRamping) ||
++ PP_CAP(PHM_PlatformCaps_TDRamping) ||
++ PP_CAP(PHM_PlatformCaps_TCPRamping)) {
+
+ cgs_enter_safe_mode(hwmgr->device, true);
+
+@@ -879,8 +879,7 @@ int smu7_enable_smc_cac(struct pp_hwmgr *hwmgr)
+ struct smu7_hwmgr *data = (struct smu7_hwmgr *)(hwmgr->backend);
+ int result = 0;
+
+- if (phm_cap_enabled(hwmgr->platform_descriptor.platformCaps,
+- PHM_PlatformCaps_CAC)) {
++ if (PP_CAP(PHM_PlatformCaps_CAC)) {
+ int smc_result;
+ smc_result = smum_send_msg_to_smc(hwmgr->smumgr,
+ (uint16_t)(PPSMC_MSG_EnableCac));
+@@ -897,8 +896,7 @@ int smu7_disable_smc_cac(struct pp_hwmgr *hwmgr)
+ struct smu7_hwmgr *data = (struct smu7_hwmgr *)(hwmgr->backend);
+ int result = 0;
+
+- if (phm_cap_enabled(hwmgr->platform_descriptor.platformCaps,
+- PHM_PlatformCaps_CAC) && data->cac_enabled) {
++ if (PP_CAP(PHM_PlatformCaps_CAC) && data->cac_enabled) {
+ int smc_result = smum_send_msg_to_smc(hwmgr->smumgr,
+ (uint16_t)(PPSMC_MSG_DisableCac));
+ PP_ASSERT_WITH_CODE((smc_result == 0),
+@@ -942,9 +940,7 @@ int smu7_enable_power_containment(struct pp_hwmgr *hwmgr)
+ else
+ cac_table = hwmgr->dyn_state.cac_dtp_table;
+
+- if (phm_cap_enabled(hwmgr->platform_descriptor.platformCaps,
+- PHM_PlatformCaps_PowerContainment)) {
+-
++ if (PP_CAP(PHM_PlatformCaps_PowerContainment)) {
+ if (data->enable_tdc_limit_feature) {
+ smc_result = smum_send_msg_to_smc(hwmgr->smumgr,
+ (uint16_t)(PPSMC_MSG_TDCLimitEnable));
+@@ -980,9 +976,8 @@ int smu7_disable_power_containment(struct pp_hwmgr *hwmgr)
+ struct smu7_hwmgr *data = (struct smu7_hwmgr *)(hwmgr->backend);
+ int result = 0;
+
+- if (phm_cap_enabled(hwmgr->platform_descriptor.platformCaps,
+- PHM_PlatformCaps_PowerContainment) &&
+- data->power_containment_features) {
++ if (PP_CAP(PHM_PlatformCaps_PowerContainment) &&
++ data->power_containment_features) {
+ int smc_result;
+
+ if (data->power_containment_features &
+@@ -1030,8 +1025,7 @@ int smu7_power_control_set_level(struct pp_hwmgr *hwmgr)
+ cac_table = table_info->cac_dtp_table;
+ else
+ cac_table = hwmgr->dyn_state.cac_dtp_table;
+- if (phm_cap_enabled(hwmgr->platform_descriptor.platformCaps,
+- PHM_PlatformCaps_PowerContainment)) {
++ if (PP_CAP(PHM_PlatformCaps_PowerContainment)) {
+ /* adjustment percentage has already been validated */
+ adjust_percent = hwmgr->platform_descriptor.TDPAdjustmentPolarity ?
+ hwmgr->platform_descriptor.TDPAdjustment :
+--
+2.7.4
+