summaryrefslogtreecommitdiff
path: root/config/coreboot/default/patches/0038-ec-lenovo-h8-Add-Kconfig-to-select-use-of-Thermal-Zo.patch
blob: d393226c88e8fa254f90bb4e105660759b538c2a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
From 596f2d915a36ebd3347441d7486e4d11780fc48c Mon Sep 17 00:00:00 2001
From: Matt DeVillier <matt.devillier@gmail.com>
Date: Sat, 12 Jul 2025 17:17:42 -0500
Subject: [PATCH 38/43] ec/lenovo/h8: Add Kconfig to select use of Thermal Zone
 1

Looking at the ACPI dumps of many older Thinkpads, most do not have a
second thermal zone (zone 1), they only use zone 0. This doesn't seem
to be a problem for most boards in the tree currently, but newer boards
(such as the T480) are reporting critical temperature errors on zone 1,
due to differences in the EC RAM layout (ie, TMP1 is not valid).

To mitigate this issue with the T480 (and likely other newer boards),
only include the ACPI code for thermal zone 1 for boards which need it.
Explicitly select it for those boards based on ACPI dump analysis and
model similarity.

Change-Id: Ic022f2e14b2cae74656c0ac85ba8410d50cdc9de
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
---
 src/ec/lenovo/h8/Kconfig          | 4 ++++
 src/ec/lenovo/h8/acpi/thermal.asl | 3 ++-
 src/mainboard/lenovo/t400/Kconfig | 1 +
 src/mainboard/lenovo/t410/Kconfig | 1 +
 src/mainboard/lenovo/t60/Kconfig  | 1 +
 src/mainboard/lenovo/x200/Kconfig | 1 +
 src/mainboard/lenovo/x201/Kconfig | 1 +
 src/mainboard/lenovo/x60/Kconfig  | 1 +
 8 files changed, 12 insertions(+), 1 deletion(-)

diff --git a/src/ec/lenovo/h8/Kconfig b/src/ec/lenovo/h8/Kconfig
index fbdca5f94a..c8626cc75b 100644
--- a/src/ec/lenovo/h8/Kconfig
+++ b/src/ec/lenovo/h8/Kconfig
@@ -73,4 +73,8 @@ config H8_HAS_WWAN_GPIO_DETECTION
 	bool
 	default n
 
+config H8_HAS_2ND_THERMAL_ZONE
+	bool
+	default n
+
 endif # EC_LENOVO_H8
diff --git a/src/ec/lenovo/h8/acpi/thermal.asl b/src/ec/lenovo/h8/acpi/thermal.asl
index fa5a282f54..bf9b653e12 100644
--- a/src/ec/lenovo/h8/acpi/thermal.asl
+++ b/src/ec/lenovo/h8/acpi/thermal.asl
@@ -130,7 +130,7 @@ External (\PPKG, MethodObj)
 			Name (_PR0, Package () { FPWR })
 		}
 	}
-
+#if CONFIG(H8_HAS_2ND_THERMAL_ZONE)
 	ThermalZone(THM1)
 	{
 		/* Thermal zone polling frequency: 10 seconds */
@@ -168,4 +168,5 @@ External (\PPKG, MethodObj)
 			Return (C2K(\_SB.PCI0.LPCB.EC.TMP1))
 		}
 	}
+#endif
 }
diff --git a/src/mainboard/lenovo/t400/Kconfig b/src/mainboard/lenovo/t400/Kconfig
index 85e580e30e..12fbcbdee6 100644
--- a/src/mainboard/lenovo/t400/Kconfig
+++ b/src/mainboard/lenovo/t400/Kconfig
@@ -11,6 +11,7 @@ config BOARD_SPECIFIC_OPTIONS
 	select SOUTHBRIDGE_INTEL_I82801IX
 	select EC_LENOVO_PMH7
 	select EC_LENOVO_H8
+	select H8_HAS_2ND_THERMAL_ZONE
 	select H8_HAS_BAT_THRESHOLDS_IMPL
 	select H8_HAS_BDC_GPIO_DETECTION if !BOARD_LENOVO_R500
 	select BOARD_ROMSIZE_KB_8192 if !BOARD_LENOVO_R500
diff --git a/src/mainboard/lenovo/t410/Kconfig b/src/mainboard/lenovo/t410/Kconfig
index 9c78cb1741..6f18528824 100644
--- a/src/mainboard/lenovo/t410/Kconfig
+++ b/src/mainboard/lenovo/t410/Kconfig
@@ -22,6 +22,7 @@ config BOARD_SPECIFIC_OPTIONS
 	select DRIVERS_LENOVO_HYBRID_GRAPHICS
 	select INTEL_GMA_HAVE_VBT
 	select MAINBOARD_USES_IFD_GBE_REGION
+	select H8_HAS_2ND_THERMAL_ZONE
 	select H8_HAS_BAT_THRESHOLDS_IMPL
 	select MAINBOARD_HAS_LIBGFXINIT
 	select DRIVERS_RICOH_RCE822
diff --git a/src/mainboard/lenovo/t60/Kconfig b/src/mainboard/lenovo/t60/Kconfig
index 6d095943bd..f1221191da 100644
--- a/src/mainboard/lenovo/t60/Kconfig
+++ b/src/mainboard/lenovo/t60/Kconfig
@@ -25,6 +25,7 @@ config BOARD_SPECIFIC_OPTIONS
 	select HAVE_CMOS_DEFAULT
 	select I945_LVDS
 	select INTEL_GMA_HAVE_VBT
+	select H8_HAS_2ND_THERMAL_ZONE
 	select H8_HAS_BDC_GPIO_DETECTION if BOARD_LENOVO_T60 || BOARD_LENOVO_R60
 
 config MAINBOARD_DIR
diff --git a/src/mainboard/lenovo/x200/Kconfig b/src/mainboard/lenovo/x200/Kconfig
index 4aa1e2ce1e..148584ed5c 100644
--- a/src/mainboard/lenovo/x200/Kconfig
+++ b/src/mainboard/lenovo/x200/Kconfig
@@ -10,6 +10,7 @@ config BOARD_SPECIFIC_OPTIONS
 	select SOUTHBRIDGE_INTEL_I82801IX
 	select EC_LENOVO_PMH7
 	select EC_LENOVO_H8
+	select H8_HAS_2ND_THERMAL_ZONE if BOARD_LENOVO_X200
 	select H8_HAS_BAT_THRESHOLDS_IMPL
 	select H8_HAS_BDC_GPIO_DETECTION if BOARD_LENOVO_X200
 	select NO_UART_ON_SUPERIO
diff --git a/src/mainboard/lenovo/x201/Kconfig b/src/mainboard/lenovo/x201/Kconfig
index 319f127ab6..e91ec3e642 100644
--- a/src/mainboard/lenovo/x201/Kconfig
+++ b/src/mainboard/lenovo/x201/Kconfig
@@ -24,6 +24,7 @@ config BOARD_SPECIFIC_OPTIONS
 	select MAINBOARD_HAS_TPM1
 	select INTEL_GMA_HAVE_VBT
 	select MAINBOARD_USES_IFD_GBE_REGION
+	select H8_HAS_2ND_THERMAL_ZONE
 	select H8_HAS_BAT_THRESHOLDS_IMPL
 	select H8_HAS_BDC_GPIO_DETECTION
 
diff --git a/src/mainboard/lenovo/x60/Kconfig b/src/mainboard/lenovo/x60/Kconfig
index 33238ccbd8..edacdcf234 100644
--- a/src/mainboard/lenovo/x60/Kconfig
+++ b/src/mainboard/lenovo/x60/Kconfig
@@ -16,6 +16,7 @@ config BOARD_SPECIFIC_OPTIONS
 	select EC_LENOVO_H8
 	select DRIVERS_I2C_CK505
 	select DRIVER_LENOVO_SERIALS
+	select H8_HAS_2ND_THERMAL_ZONE
 	select H8_HAS_BDC_GPIO_DETECTION
 	select HAVE_OPTION_TABLE
 	select INTEL_INT15
-- 
2.39.5