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: 14+ 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
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
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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).