Re: [PATCH v23 02/13] power: reset: reboot-mode: Support up to 3 magic values per mode

From: Pavan Kondeti

Date: Wed Jul 22 2026 - 05:51:06 EST


On Tue, Jul 14, 2026 at 10:46:30PM +0530, Shivendra Pratap wrote:
> ARM PSCI vendor-specific resets, require a 32-bit reset_type and a 64-bit
> cookie as arguments. This cannot be implemented via the reboot-mode
> framework, which supports a single 32-bit argument as magic value.
>
> Extend the reboot-mode framework to support up to three 32-bit arguments
> as magic, per reboot-mode.
>
> Signed-off-by: Shivendra Pratap <shivendra.pratap@xxxxxxxxxxxxxxxx>
> ---
> drivers/power/reset/nvmem-reboot-mode.c | 10 ++++----
> drivers/power/reset/qcom-pon.c | 8 ++++---
> drivers/power/reset/reboot-mode.c | 41 +++++++++++++++++++++-----------
> drivers/power/reset/syscon-reboot-mode.c | 8 ++++---
> include/linux/reboot-mode.h | 4 +++-
> 5 files changed, 46 insertions(+), 25 deletions(-)
>
> diff --git a/drivers/power/reset/nvmem-reboot-mode.c b/drivers/power/reset/nvmem-reboot-mode.c
> index d260715fccf6..ac69b5f39fb4 100644
> --- a/drivers/power/reset/nvmem-reboot-mode.c
> +++ b/drivers/power/reset/nvmem-reboot-mode.c
> @@ -17,14 +17,16 @@ struct nvmem_reboot_mode {
> struct nvmem_cell *cell;
> };
>
> -static int nvmem_reboot_mode_write(struct reboot_mode_driver *reboot,
> - unsigned int magic)
> +static int nvmem_reboot_mode_write(struct reboot_mode_driver *reboot, u32 *magic, int count)
> {
> struct nvmem_reboot_mode *nvmem_rbm;
> size_t buf_len;
> void *buf;
> int ret;
>
> + if (count != 1)
> + return -EINVAL;
> +

The count can be different per mode. Because `struct mode_info` has
`count` member. This single `count` check across all modes may not be
useful.

Either drivers need to use count passed to them or drivers needs to
receive `struct mode_info` in the callabck.

Thanks,
Pavan