[PATCH v3 0/3] power: reset: pscrr: record reset cause on panic and watchdog pretimeout

From: Faruque Ansari

Date: Tue Aug 04 2026 - 05:29:03 EST


This series extends the Power State Change Reason Register (PSCRR) [1]
framework to capture two additional reset causes.

1. Kernel panic — a panic notifier writes PSCR_KERNEL_PANIC to NVMEM
before the system resets, so the next boot can distinguish a panic
from other reset causes.

2. Watchdog pretimeout — set_psc_reason(PSCR_WATCHDOG_PRETIMEOUT) is
called from pretimeout_panic(), when the watchdog fire its
pre-reset notification before resetting the system, so the reason gets
saved and we know its was a watchdog timeout that caused the reset.

[1] https://lore.kernel.org/all/20260731095959.296056-1-o.rempel@xxxxxxxxxxxxxx/

Changes in v3:
- Update patch 3/3 based on Guenter Roeck's feedback:
* Move set_psc_reason(PSCR_WATCHDOG_PRETIMEOUT) from
watchdog_notify_pretimeout() to pretimeout_panic().

Changes in v2:
https://lore.kernel.org/lkml/20260722-pscrr-reboot-reason-v2-0-495ba3005953@xxxxxxxxxxxxxxxx/
- Split patch 2/2 into two patches as requested by Guenter Roeck:
* Patch 2/3: power/reset — add PSCR_WATCHDOG_PRETIMEOUT and guard
panic notifier against overwriting watchdog reason.
* Patch 3/3: watchdog — hook set_psc_reason() into
watchdog_notify_pretimeout().

Signed-off-by: Faruque Ansari <faruque.ansari@xxxxxxxxxxxxxxxx>
---
Faruque Ansari (3):
power: reset: pscrr: add kernel panic reason tracking
power: reset: pscrr: add watchdog pretimeout reason tracking
watchdog: pretimeout: update PSC reason in panic pretimeout governor

drivers/power/reset/pscrr/pscrr.c | 30 ++++++++++++++++++++++++++++++
drivers/watchdog/pretimeout_panic.c | 2 ++
include/linux/power/power_on_reason.h | 1 +
include/linux/reboot.h | 3 +++
kernel/reboot.c | 1 +
5 files changed, 37 insertions(+)
---
base-commit: 551961df5728932d968a4aae534714acfa43f3a1
change-id: 20260803-pscrr-reboot-reason-f1254965ec0d

Best regards,
--
Faruque Ansari <faruque.ansari@xxxxxxxxxxxxxxxx>