[U-Boot] [PATCH v2 1/3] sysreset: switch to using SYSRESET_POWER_OFF for poweroff
Simon Glass
sjg at chromium.org
Sat May 18 16:08:26 UTC 2019
On Thu, 16 May 2019 at 15:48, Urja Rannikko <urjaman at gmail.com> wrote:
>
> It seems that SYSRESET_POWER_OFF was added recently, and all previous code
> used SYSRESET_POWER for poweroff. SYSRESET_POWER is supposed to be a
> PMIC-level power cycle, not a poweroff.
SYSRESET_POWER means to do a power reset (removing and reinstating all power)
SYSRESET_POWER_OFF means to turn the device off and leave it off
>
> Signed-off-by: Urja Rannikko <urjaman at gmail.com>
> ---
> v2: Do not change STPMIC1 driver (thats actually SYSRESET_POWER)
>
> Note: I didnt touch the test/dm/sysreset.c code yet, mostly because
> I wanted to get feedback on this first and that i'd need to understand
> the tests properly to do that (and i havent used them before at all).
> ---
> arch/arm/mach-stm32mp/cmd_poweroff.c | 2 +-
> arch/sandbox/cpu/state.c | 2 +-
> drivers/sysreset/sysreset_psci.c | 2 +-
> drivers/sysreset/sysreset_sandbox.c | 4 ++--
> 4 files changed, 5 insertions(+), 5 deletions(-)
>
> diff --git a/arch/arm/mach-stm32mp/cmd_poweroff.c b/arch/arm/mach-stm32mp/cmd_poweroff.c
> index f54dd1daf2..62347425a0 100644
> --- a/arch/arm/mach-stm32mp/cmd_poweroff.c
> +++ b/arch/arm/mach-stm32mp/cmd_poweroff.c
> @@ -14,7 +14,7 @@ int do_poweroff(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
> puts("poweroff ...\n");
> mdelay(100);
>
> - ret = sysreset_walk(SYSRESET_POWER);
> + ret = sysreset_walk(SYSRESET_POWER_OFF);
>
> if (ret == -EINPROGRESS)
> mdelay(1000);
> diff --git a/arch/sandbox/cpu/state.c b/arch/sandbox/cpu/state.c
> index d3b9c05985..dee5fde4f7 100644
> --- a/arch/sandbox/cpu/state.c
> +++ b/arch/sandbox/cpu/state.c
> @@ -355,7 +355,7 @@ void state_reset_for_test(struct sandbox_state *state)
> {
> /* No reset yet, so mark it as such. Always allow power reset */
> state->last_sysreset = SYSRESET_COUNT;
> - state->sysreset_allowed[SYSRESET_POWER] = true;
> + state->sysreset_allowed[SYSRESET_POWER_OFF] = true;
>
> memset(&state->wdt, '\0', sizeof(state->wdt));
> memset(state->spi, '\0', sizeof(state->spi));
> diff --git a/drivers/sysreset/sysreset_psci.c b/drivers/sysreset/sysreset_psci.c
> index de2ec8aeb1..c7907b3226 100644
> --- a/drivers/sysreset/sysreset_psci.c
> +++ b/drivers/sysreset/sysreset_psci.c
> @@ -18,7 +18,7 @@ static int psci_sysreset_request(struct udevice *dev, enum sysreset_t type)
> case SYSRESET_COLD:
> function_id = PSCI_0_2_FN_SYSTEM_RESET;
> break;
> - case SYSRESET_POWER:
> + case SYSRESET_POWER_OFF:
> function_id = PSCI_0_2_FN_SYSTEM_OFF;
> break;
> default:
> diff --git a/drivers/sysreset/sysreset_sandbox.c b/drivers/sysreset/sysreset_sandbox.c
> index 38e2a7e241..8bc9f4b4cc 100644
> --- a/drivers/sysreset/sysreset_sandbox.c
> +++ b/drivers/sysreset/sysreset_sandbox.c
> @@ -57,13 +57,13 @@ static int sandbox_sysreset_request(struct udevice *dev, enum sysreset_t type)
> case SYSRESET_COLD:
> state->last_sysreset = type;
> break;
> - case SYSRESET_POWER:
> + case SYSRESET_POWER_OFF:
> state->last_sysreset = type;
> if (!state->sysreset_allowed[type])
> return -EACCES;
> sandbox_exit();
> break;
> - case SYSRESET_POWER_OFF:
> + case SYSRESET_POWER:
> if (!state->sysreset_allowed[type])
> return -EACCES;
> default:
> --
> 2.21.0
>
I actually sent a patch to the sandbox driver...er no I didn't, oops.
I'll dig up the series and send it.
Regards,
Simopn
More information about the U-Boot
mailing list