All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v1] thermal: imx: Make trip point offset configurable
@ 2022-05-16 19:00 ` Francesco Dolcini
  0 siblings, 0 replies; 24+ messages in thread
From: Francesco Dolcini @ 2022-05-16 19:00 UTC (permalink / raw)
  To: Daniel Lezcano, l.stach, linux-pm
  Cc: Francesco Dolcini, Amit Kucheria, Shawn Guo, Sascha Hauer,
	Pengutronix Kernel Team, Fabio Estevam, NXP Linux Team,
	linux-arm-kernel, Tim Harvey, Jon Nettleton, Rafael J . Wysocki

Currently the imx thermal driver has a hardcoded critical temperature
value offset of 5 Celsius degrees from the actual SoC maximum
temperature.

This affects applications and systems designed to be working on this close
to the limit, but yet valid, temperature range.

Given that there is no single value that will fit all the use cases make
the critical trip point offset from the max temperature configurable
using a newly added trip_offset module parameter, passive trip point is
set to 5 Celsius degrees less than the critical. By default the
system behaves exactly as before.

Link: https://lore.kernel.org/all/20220420091300.179753-1-francesco.dolcini@toradex.com/
Signed-off-by: Francesco Dolcini <francesco.dolcini@toradex.com>
---
 drivers/thermal/imx_thermal.c | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

diff --git a/drivers/thermal/imx_thermal.c b/drivers/thermal/imx_thermal.c
index 16663373b682..42d1f8a3eccb 100644
--- a/drivers/thermal/imx_thermal.c
+++ b/drivers/thermal/imx_thermal.c
@@ -86,6 +86,10 @@ enum imx_thermal_trip {
 #define TEMPMON_IMX6SX			2
 #define TEMPMON_IMX7D			3
 
+static int trip_offset = 5;
+module_param(trip_offset, int, 0444);
+MODULE_PARM_DESC(trip_offset, "Critical trip point offset from CPU max temp in Celsius degrees (default 5)");
+
 struct thermal_soc_data {
 	u32 version;
 
@@ -504,11 +508,11 @@ static void imx_init_temp_grade(struct platform_device *pdev, u32 ocotp_mem0)
 	}
 
 	/*
-	 * Set the critical trip point at 5 °C under max
-	 * Set the passive trip point at 10 °C under max (changeable via sysfs)
+	 * Set the critical trip point at 5 °C under max (changeable via module param)
+	 * Set the passive trip point at 5 °C under critical (changeable via sysfs)
 	 */
-	data->temp_critical = data->temp_max - (1000 * 5);
-	data->temp_passive = data->temp_max - (1000 * 10);
+	data->temp_critical = data->temp_max - (1000 * trip_offset);
+	data->temp_passive = data->temp_critical - (1000 * 5);
 }
 
 static int imx_init_from_tempmon_data(struct platform_device *pdev)
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 24+ messages in thread

end of thread, other threads:[~2022-05-24 13:18 UTC | newest]

Thread overview: 24+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-05-16 19:00 [PATCH v1] thermal: imx: Make trip point offset configurable Francesco Dolcini
2022-05-16 19:00 ` Francesco Dolcini
2022-05-16 19:06 ` Ahmad Fatoum
2022-05-16 19:06   ` Ahmad Fatoum
2022-05-16 19:16   ` Francesco Dolcini
2022-05-16 19:16     ` Francesco Dolcini
2022-05-17  4:36     ` Ahmad Fatoum
2022-05-17  4:36       ` Ahmad Fatoum
2022-05-17 15:29 ` Francesco Dolcini
2022-05-17 15:29   ` Francesco Dolcini
2022-05-18  8:55 ` Marco Felsch
2022-05-18  8:55   ` Marco Felsch
2022-05-18  9:49   ` Francesco Dolcini
2022-05-18  9:49     ` Francesco Dolcini
2022-05-18 10:10     ` Daniel Lezcano
2022-05-18 10:10       ` Daniel Lezcano
2022-05-23 14:35       ` Francesco Dolcini
2022-05-23 14:35         ` Francesco Dolcini
2022-05-24  8:35         ` Marco Felsch
2022-05-24  8:35           ` Marco Felsch
2022-05-24 10:07           ` Francesco Dolcini
2022-05-24 10:07             ` Francesco Dolcini
2022-05-24 13:17             ` Daniel Lezcano
2022-05-24 13:17               ` Daniel Lezcano

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.