aboutsummaryrefslogtreecommitdiffstats
path: root/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3593-drm-amd-powerplay-fix-thermal-interrupts-on-vega10.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3593-drm-amd-powerplay-fix-thermal-interrupts-on-vega10.patch')
-rw-r--r--meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3593-drm-amd-powerplay-fix-thermal-interrupts-on-vega10.patch34
1 files changed, 34 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3593-drm-amd-powerplay-fix-thermal-interrupts-on-vega10.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3593-drm-amd-powerplay-fix-thermal-interrupts-on-vega10.patch
new file mode 100644
index 00000000..4c3b507b
--- /dev/null
+++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3593-drm-amd-powerplay-fix-thermal-interrupts-on-vega10.patch
@@ -0,0 +1,34 @@
+From 7aedc8b4ccd5b01f81d36e6a804481ff0ca18993 Mon Sep 17 00:00:00 2001
+From: Eric Huang <JinHuiEric.Huang@amd.com>
+Date: Thu, 22 Feb 2018 12:00:35 -0500
+Subject: [PATCH 3593/4131] drm/amd/powerplay: fix thermal interrupts on vega10
+
+a bug in programming thermal interrupt register masks out
+interrupts and driver cannot receive interrupts. Setting
+0 to mask bits will fix it.
+
+Signed-off-by: Eric Huang <JinHuiEric.Huang@amd.com>
+Acked-by: Alex Deucher <alexander.deucher@amd.com>
+Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
+---
+ drivers/gpu/drm/amd/powerplay/hwmgr/vega10_thermal.c | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_thermal.c b/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_thermal.c
+index 7491163..eb6e965 100644
+--- a/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_thermal.c
++++ b/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_thermal.c
+@@ -409,7 +409,9 @@ static int vega10_thermal_set_temperature_range(struct pp_hwmgr *hwmgr,
+ val = CGS_REG_SET_FIELD(val, THM_THERMAL_INT_CTRL, THERM_IH_HW_ENA, 1);
+ val = CGS_REG_SET_FIELD(val, THM_THERMAL_INT_CTRL, DIG_THERM_INTH, (high / PP_TEMPERATURE_UNITS_PER_CENTIGRADES));
+ val = CGS_REG_SET_FIELD(val, THM_THERMAL_INT_CTRL, DIG_THERM_INTL, (low / PP_TEMPERATURE_UNITS_PER_CENTIGRADES));
+- val = val & (~THM_THERMAL_INT_CTRL__THERM_TRIGGER_MASK_MASK);
++ val &= (~THM_THERMAL_INT_CTRL__THERM_TRIGGER_MASK_MASK) &
++ (~THM_THERMAL_INT_CTRL__THERM_INTH_MASK_MASK) &
++ (~THM_THERMAL_INT_CTRL__THERM_INTL_MASK_MASK);
+
+ cgs_write_register(hwmgr->device, reg, val);
+
+--
+2.7.4
+