[PATCH v1] thermal: imx: Make trip point offset configurable
Ahmad Fatoum
a.fatoum at pengutronix.de
Mon May 16 12:06:10 PDT 2022
On 16.05.22 21:00, Francesco Dolcini wrote:
> 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 at 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);
Is this being r--r--r-- intended?
> +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)
--
Pengutronix e.K. | |
Steuerwalder Str. 21 | http://www.pengutronix.de/ |
31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
More information about the linux-arm-kernel
mailing list