[PATCH v1] thermal: imx: Make trip point offset configurable
Marco Felsch
m.felsch at pengutronix.de
Wed May 18 01:55:22 PDT 2022
Hi Francesco,
On 22-05-16, 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.
I thought the conclusion of the discussion was to use a dt-property?
Since it is device and/or environment specific.
Regards,
Marco
>
> 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);
> +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
>
>
>
More information about the linux-arm-kernel
mailing list