From: Oleksij Rempel <o.rempel@pengutronix.de>
To: Sebastian Reichel <sre@kernel.org>,
Srinivas Kandagatla <srinivas.kandagatla@linaro.org>,
Benson Leung <bleung@chromium.org>,
Tzung-Bi Shih <tzungbi@kernel.org>,
Daniel Lezcano <daniel.lezcano@linaro.org>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: kernel@pengutronix.de, linux-kernel@vger.kernel.org,
"Liam Girdwood" <lgirdwood@gmail.com>,
"Mark Brown" <broonie@kernel.org>,
"Rafael J. Wysocki" <rafael@kernel.org>,
"Zhang Rui" <rui.zhang@intel.com>,
"Lukasz Luba" <lukasz.luba@arm.com>,
linux-pm@vger.kernel.org, "Søren Andersen" <san@skov.dk>,
"Guenter Roeck" <groeck@chromium.org>,
"Matti Vaittinen" <mazziesaccount@gmail.com>,
"Ahmad Fatoum" <a.fatoum@pengutronix.de>,
"Andrew Morton" <akpm@linux-foundation.org>,
chrome-platform@lists.linux.dev
Subject: Re: [PATCH v11 0/7] Introduction of PSCR Framework and Related Components
Date: Mon, 14 Jul 2025 12:17:48 +0200 [thread overview]
Message-ID: <aHTZTFxfS6Bn4yhz@pengutronix.de> (raw)
In-Reply-To: <20250618120255.3141862-1-o.rempel@pengutronix.de>
Hi Greg,
this patch series doesn’t belong to any single existing subsystem. It
spans drivers like power/reset/, touches nvmem, regulator, and adds new
interfaces.
Since there's no clear maintainer fit and the code is self-contained,
I’d like to ask you to pick it up.
The latest version is v11 and has addressed all review comments.
Thanks!
Oleksij
On Wed, Jun 18, 2025 at 02:02:48PM +0200, Oleksij Rempel wrote:
> changes v11:
> - add missing break reported by kernel test robot <lkp@intel.com>
>
> changes v10:
> - add some add Reviewed-by tags
> - regulator_handle_critical: set pscr = PSCR_UNKNOWN for default case
> - make g_pscrr static
>
> changes v9:
> - Remove redundant pr_crit() messages before hw_protection_trigger()
> - Replace psc_reason_to_str() switch with static const string array
> - Mark psc_last_reason as static
>
> changes v8:
> - Use DEFINE_GUARD() and guard(g_pscrr) for scoped locking of the global
> pscrr_core struct
> - Replace manual mutex_lock/unlock with automatic cleanup-based guard()
> usage
> - Centralize backend and locking state in struct pscrr_core
> - Prepare for future multi-backend support with clean encapsulation
> - Improve sysfs documentation:
> * Added full enum psc_reason value table
> * Simplified example comments, removed redundant "may differ" phrasing
> * Added note that not all values are supported on all systems
> * Linked value definitions to include/linux/reboot.h
> * Added clear read/write usage examples for sysfs entries
>
> changes v7:
> - document expected values in sysfs documentation
> - make write support optional
>
> changes v6:
> - add sysfs documentation
> - rebase against latest hw_protection_reboot changes:
> https://web.git.kernel.org/pub/scm/linux/kernel/git/akpm/mm.git/commit/?h=mm-nonmm-unstable&id=212dd3f6e57f6af8ed3caa23b93adc29334f9652
> - push core part of the reset reason the kernel/reboot.c
>
> changes v5:
> - fix compile with NVMEM=n and potential issues with NVMEM=m
>
> changes v4:
> - fix compile with CONFIG_PSCRR=n
>
> changes v3
> - rework to remove devicetree dependencies
> - extend NVMEM to search devices and cells by names.
>
> changes v2:
> - rename the framework from PSCR to PSCRR (last R is for Recorder)
> - extend power on reason header and use it to show detected reason on
> system start and in sysfs.
> - remove "unknow" reason
> - rebase on top of v6.8-rc1
> - yaml fixes
> - zero reason state on boot
>
> Hello all,
>
> This patch series introduces the Power State Change Reasons Recording
> (PSCRR) framework and its related components into the kernel. The PSCR
> framework is designed for systems where traditional methods of storing
> power state change reasons, like PMICs or watchdogs, are inadequate. It
> provides a structured way to store reasons for system shutdowns and
> reboots, such as under-voltage or software-triggered events, in
> non-volatile hardware storage.
>
> These changes are critical for systems requiring detailed postmortem
> analysis and where immediate power-down scenarios limit traditional
> storage options. The framework also assists bootloaders and early-stage
> system components in making informed recovery decisions.
>
>
>
> Oleksij Rempel (7):
> power: Extend power_on_reason.h for upcoming PSCRR framework
> reboot: hw_protection_trigger: use standardized numeric
> shutdown/reboot reasons instead of strings
> power: reset: Introduce PSCR Recording Framework for Non-Volatile
> Storage
> nvmem: provide consumer access to cell size metrics
> nvmem: add support for device and sysfs-based cell lookups
> power: reset: add PSCR NVMEM Driver for Recording Power State Change
> Reasons
> Documentation: Add sysfs documentation for PSCRR reboot reason
> tracking
>
> .../ABI/testing/sysfs-kernel-reboot-pscrr | 74 ++++
> drivers/nvmem/core.c | 134 ++++++
> drivers/platform/chrome/cros_ec_lpc.c | 2 +-
> drivers/power/reset/Kconfig | 47 ++
> drivers/power/reset/Makefile | 2 +
> drivers/power/reset/pscrr-nvmem.c | 254 +++++++++++
> drivers/power/reset/pscrr.c | 405 ++++++++++++++++++
> drivers/regulator/core.c | 16 +-
> drivers/regulator/irq_helpers.c | 9 +-
> drivers/thermal/thermal_core.c | 3 +-
> include/linux/nvmem-consumer.h | 25 ++
> include/linux/power/power_on_reason.h | 4 +
> include/linux/pscrr.h | 58 +++
> include/linux/reboot.h | 77 +++-
> kernel/reboot.c | 85 +++-
> 15 files changed, 1173 insertions(+), 22 deletions(-)
> create mode 100644 Documentation/ABI/testing/sysfs-kernel-reboot-pscrr
> create mode 100644 drivers/power/reset/pscrr-nvmem.c
> create mode 100644 drivers/power/reset/pscrr.c
> create mode 100644 include/linux/pscrr.h
>
> --
> 2.39.5
>
>
--
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 |
next prev parent reply other threads:[~2025-07-14 10:18 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-06-18 12:02 [PATCH v11 0/7] Introduction of PSCR Framework and Related Components Oleksij Rempel
2025-06-18 12:02 ` [PATCH v11 1/7] power: Extend power_on_reason.h for upcoming PSCRR framework Oleksij Rempel
2025-06-18 12:02 ` [PATCH v11 2/7] reboot: hw_protection_trigger: use standardized numeric shutdown/reboot reasons instead of strings Oleksij Rempel
2025-06-18 12:02 ` [PATCH v11 3/7] power: reset: Introduce PSCR Recording Framework for Non-Volatile Storage Oleksij Rempel
2025-07-16 12:43 ` Greg KH
2025-06-18 12:02 ` [PATCH v11 4/7] nvmem: provide consumer access to cell size metrics Oleksij Rempel
2025-06-18 12:02 ` [PATCH v11 5/7] nvmem: add support for device and sysfs-based cell lookups Oleksij Rempel
2025-07-16 12:48 ` Greg KH
2025-06-18 12:02 ` [PATCH v11 6/7] power: reset: add PSCR NVMEM Driver for Recording Power State Change Reasons Oleksij Rempel
2025-06-20 15:56 ` Francesco Valla
2025-07-16 12:51 ` Greg KH
2026-06-25 11:52 ` Faruque Ansari
2025-06-18 12:02 ` [PATCH v11 7/7] Documentation: Add sysfs documentation for PSCRR reboot reason tracking Oleksij Rempel
2025-07-14 10:17 ` Oleksij Rempel [this message]
2025-07-16 12:34 ` [PATCH v11 0/7] Introduction of PSCR Framework and Related Components Greg Kroah-Hartman
2025-10-02 12:00 ` RFC: Selecting an NVMEM cell for Power State Change Reason (PSCR) recording Oleksij Rempel
2025-10-02 16:07 ` Kees Cook
2026-03-10 9:29 ` [PR 174] dt-bindings: chosen: Add "power-state-change-reason" nvmem property Oleksij Rempel
[not found] ` <3309e88e-e189-42ea-b74e-346aec1b4b5f@oss.qualcomm.com>
2026-06-29 11:14 ` [PATCH v11 0/7] Introduction of PSCR Framework and Related Components Faruque Ansari
2026-06-29 11:41 ` Oleksij Rempel
2026-07-01 12:56 ` Faruque Ansari
2026-07-02 4:21 ` Oleksij Rempel
2026-07-06 9:36 ` Faruque Ansari
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=aHTZTFxfS6Bn4yhz@pengutronix.de \
--to=o.rempel@pengutronix.de \
--cc=a.fatoum@pengutronix.de \
--cc=akpm@linux-foundation.org \
--cc=bleung@chromium.org \
--cc=broonie@kernel.org \
--cc=chrome-platform@lists.linux.dev \
--cc=daniel.lezcano@linaro.org \
--cc=gregkh@linuxfoundation.org \
--cc=groeck@chromium.org \
--cc=kernel@pengutronix.de \
--cc=lgirdwood@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pm@vger.kernel.org \
--cc=lukasz.luba@arm.com \
--cc=mazziesaccount@gmail.com \
--cc=rafael@kernel.org \
--cc=rui.zhang@intel.com \
--cc=san@skov.dk \
--cc=sre@kernel.org \
--cc=srinivas.kandagatla@linaro.org \
--cc=tzungbi@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.