diff options
Diffstat (limited to 'common/recipes-kernel/linux/linux-yocto-4.19.8/1573-drm-amd-powerplay-set-max-fan-target-temperature-as-.patch')
-rw-r--r-- | common/recipes-kernel/linux/linux-yocto-4.19.8/1573-drm-amd-powerplay-set-max-fan-target-temperature-as-.patch | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/common/recipes-kernel/linux/linux-yocto-4.19.8/1573-drm-amd-powerplay-set-max-fan-target-temperature-as-.patch b/common/recipes-kernel/linux/linux-yocto-4.19.8/1573-drm-amd-powerplay-set-max-fan-target-temperature-as-.patch new file mode 100644 index 00000000..6ce6f2d4 --- /dev/null +++ b/common/recipes-kernel/linux/linux-yocto-4.19.8/1573-drm-amd-powerplay-set-max-fan-target-temperature-as-.patch @@ -0,0 +1,61 @@ +From d8937d0827eee55df4075266c7a3e25d2f5403a1 Mon Sep 17 00:00:00 2001 +From: Evan Quan <evan.quan@amd.com> +Date: Mon, 25 Feb 2019 14:59:37 +0800 +Subject: [PATCH 1573/2940] drm/amd/powerplay: set max fan target temperature + as 105C + +A workaround to override the fan target temperature in SMC table. + +Change-Id: I67845c2fe5f51abde1ac483a979bde43ce2f26d3 +Signed-off-by: Evan Quan <evan.quan@amd.com> +Reviewed-by: Kenneth Feng <kenneth.feng@amd.com +Acked-by: Alex Deucher <alexander.deucher@amd.com> +--- + .../powerplay/hwmgr/vega20_processpptables.c | 17 +++++++++++++++++ + 1 file changed, 17 insertions(+) + +diff --git a/drivers/gpu/drm/amd/powerplay/hwmgr/vega20_processpptables.c b/drivers/gpu/drm/amd/powerplay/hwmgr/vega20_processpptables.c +index 97f8a1a970c3..7a7f15d0c53a 100644 +--- a/drivers/gpu/drm/amd/powerplay/hwmgr/vega20_processpptables.c ++++ b/drivers/gpu/drm/amd/powerplay/hwmgr/vega20_processpptables.c +@@ -32,6 +32,8 @@ + #include "cgs_common.h" + #include "vega20_pptable.h" + ++#define VEGA20_FAN_TARGET_TEMPERATURE_OVERRIDE 105 ++ + static void set_hw_cap(struct pp_hwmgr *hwmgr, bool enable, + enum phm_platform_caps cap) + { +@@ -798,6 +800,17 @@ static int append_vbios_pptable(struct pp_hwmgr *hwmgr, PPTable_t *ppsmc_pptable + return 0; + } + ++static int override_powerplay_table_fantargettemperature(struct pp_hwmgr *hwmgr) ++{ ++ struct phm_ppt_v3_information *pptable_information = ++ (struct phm_ppt_v3_information *)hwmgr->pptable; ++ PPTable_t *ppsmc_pptable = (PPTable_t *)(pptable_information->smc_pptable); ++ ++ ppsmc_pptable->FanTargetTemperature = VEGA20_FAN_TARGET_TEMPERATURE_OVERRIDE; ++ ++ return 0; ++} ++ + #define VEGA20_ENGINECLOCK_HARDMAX 198000 + static int init_powerplay_table_information( + struct pp_hwmgr *hwmgr, +@@ -887,6 +900,10 @@ static int init_powerplay_table_information( + + + result = append_vbios_pptable(hwmgr, (pptable_information->smc_pptable)); ++ if (result) ++ return result; ++ ++ result = override_powerplay_table_fantargettemperature(hwmgr); + + return result; + } +-- +2.17.1 + |