[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <726c6ffc-a8d4-4328-a849-2d59f3a0a1c9@linaro.org>
Date: Wed, 12 Mar 2025 16:35:51 +0100
From: Daniel Lezcano <daniel.lezcano@...aro.org>
To: Oleksij Rempel <o.rempel@...gutronix.de>,
Sebastian Reichel <sre@...nel.org>,
Srinivas Kandagatla <srinivas.kandagatla@...aro.org>
Cc: kernel@...gutronix.de, linux-kernel@...r.kernel.org,
Liam Girdwood <lgirdwood@...il.com>, Mark Brown <broonie@...nel.org>,
"Rafael J. Wysocki" <rafael@...nel.org>, Zhang Rui <rui.zhang@...el.com>,
Lukasz Luba <lukasz.luba@....com>, linux-pm@...r.kernel.org,
Søren Andersen <san@...v.dk>
Subject: Re: [PATCH v4 7/7] thermal: core: Record PSCR before
hw_protection_shutdown()
Hi Oleksij,
On 06/03/2025 10:38, Oleksij Rempel wrote:
> Enhance the thermal core to record the Power State Change Reason (PSCR)
> prior to invoking hw_protection_shutdown(). This change integrates the
> PSCR framework with the thermal subsystem, ensuring that reasons for
> power state changes, such as overtemperature events, are stored in a
> dedicated non-volatile memory (NVMEM) cell.
>
> This 'black box' recording is crucial for post-mortem analysis, enabling
> a deeper understanding of system failures and abrupt shutdowns,
> especially in scenarios where PMICs or watchdog timers are incapable of
> logging such events. The recorded data can be utilized during system
> recovery routines in the bootloader or early kernel stages of subsequent
> boots, significantly enhancing system diagnostics, reliability, and
> debugging capabilities.
>
> Signed-off-by: Oleksij Rempel <o.rempel@...gutronix.de>
> ---
> drivers/thermal/thermal_core.c | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/drivers/thermal/thermal_core.c b/drivers/thermal/thermal_core.c
> index 2328ac0d8561..af4e9cf22bf6 100644
> --- a/drivers/thermal/thermal_core.c
> +++ b/drivers/thermal/thermal_core.c
> @@ -16,6 +16,7 @@
> #include <linux/kdev_t.h>
> #include <linux/idr.h>
> #include <linux/thermal.h>
> +#include <linux/pscrr.h>
> #include <linux/reboot.h>
> #include <linux/string.h>
> #include <linux/of.h>
> @@ -380,6 +381,8 @@ static void thermal_zone_device_halt(struct thermal_zone_device *tz, bool shutdo
>
> dev_emerg(&tz->device, "%s: critical temperature reached\n", tz->type);
>
> + set_power_state_change_reason(PSCR_OVERTEMPERATURE);
> +
> if (shutdown)
> hw_protection_shutdown(msg, poweroff_delay_ms);
> else
In the future could you add me as recipient to the series instead of
this one ? so I can get more context.
Given there are no so much hw_protection_shutdown() users in the kernel,
it could be more interesting to change the function to receive a enum
pscr_reason and then in the hw_protection_shutdown() call
pscrr_reason_to_str().
--
<http://www.linaro.org/> Linaro.org │ Open source software for ARM SoCs
Follow Linaro: <http://www.facebook.com/pages/Linaro> Facebook |
<http://twitter.com/#!/linaroorg> Twitter |
<http://www.linaro.org/linaro-blog/> Blog
Powered by blists - more mailing lists