aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/ipq806x/patches-5.10/104-5-drivers-thermal-tsens-Fix-bug-in-sensor-enable-for-m.patch
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/ipq806x/patches-5.10/104-5-drivers-thermal-tsens-Fix-bug-in-sensor-enable-for-m.patch')
-rw-r--r--target/linux/ipq806x/patches-5.10/104-5-drivers-thermal-tsens-Fix-bug-in-sensor-enable-for-m.patch66
1 files changed, 0 insertions, 66 deletions
diff --git a/target/linux/ipq806x/patches-5.10/104-5-drivers-thermal-tsens-Fix-bug-in-sensor-enable-for-m.patch b/target/linux/ipq806x/patches-5.10/104-5-drivers-thermal-tsens-Fix-bug-in-sensor-enable-for-m.patch
deleted file mode 100644
index 7b01a67d90..0000000000
--- a/target/linux/ipq806x/patches-5.10/104-5-drivers-thermal-tsens-Fix-bug-in-sensor-enable-for-m.patch
+++ /dev/null
@@ -1,66 +0,0 @@
-From b3e8bd33b84a6b6c863bd1733bd15b5f1483b8ab Mon Sep 17 00:00:00 2001
-From: Ansuel Smith <ansuelsmth@gmail.com>
-Date: Wed, 25 Nov 2020 17:06:55 +0100
-Subject: [PATCH 05/10] drivers: thermal: tsens: Fix bug in sensor enable for
- msm8960
-
-Device based on tsens VER_0 contains a hardware bug that results in some
-problem with sensor enablement. Sensor id 6-11 can't be enabled
-selectively and all of them must be enabled in one step.
-
-Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
-Acked-by: Thara Gopinath <thara.gopinath@linaro.org>
----
- drivers/thermal/qcom/tsens-8960.c | 23 ++++++++++++++++++++---
- 1 file changed, 20 insertions(+), 3 deletions(-)
-
---- a/drivers/thermal/qcom/tsens-8960.c
-+++ b/drivers/thermal/qcom/tsens-8960.c
-@@ -27,9 +27,9 @@
- #define EN BIT(0)
- #define SW_RST BIT(1)
- #define SENSOR0_EN BIT(3)
-+#define MEASURE_PERIOD BIT(18)
- #define SLP_CLK_ENA BIT(26)
- #define SLP_CLK_ENA_8660 BIT(24)
--#define MEASURE_PERIOD 1
- #define SENSOR0_SHIFT 3
-
- /* INT_STATUS_ADDR bitmasks */
-@@ -126,17 +126,34 @@ static int resume_8960(struct tsens_priv
- static int enable_8960(struct tsens_priv *priv, int id)
- {
- int ret;
-- u32 reg, mask;
-+ u32 reg, mask = BIT(id);
-
- ret = regmap_read(priv->tm_map, CNTL_ADDR, &reg);
- if (ret)
- return ret;
-
-- mask = BIT(id + SENSOR0_SHIFT);
-+ /* HARDWARE BUG:
-+ * On platforms with more than 6 sensors, all remaining sensors
-+ * must be enabled together, otherwise undefined results are expected.
-+ * (Sensor 6-7 disabled, Sensor 3 disabled...) In the original driver,
-+ * all the sensors are enabled in one step hence this bug is not
-+ * triggered.
-+ */
-+ if (id > 5)
-+ mask = GENMASK(10, 6);
-+
-+ mask <<= SENSOR0_SHIFT;
-+
-+ /* Sensors already enabled. Skip. */
-+ if ((reg & mask) == mask)
-+ return 0;
-+
- ret = regmap_write(priv->tm_map, CNTL_ADDR, reg | SW_RST);
- if (ret)
- return ret;
-
-+ reg |= MEASURE_PERIOD;
-+
- if (priv->num_sensors > 1)
- reg |= mask | SLP_CLK_ENA | EN;
- else