aboutsummaryrefslogtreecommitdiffstats
path: root/common/recipes-kernel/linux/linux-yocto-4.19.8/1573-drm-amd-powerplay-set-max-fan-target-temperature-as-.patch
diff options
context:
space:
mode:
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-.patch61
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
+