[U-Boot] [PATCH v2 1/3] sysreset: switch to using SYSRESET_POWER_OFF for poweroff

Patrick DELAUNAY patrick.delaunay at st.com
Mon May 20 13:16:46 UTC 2019


Hi Urja,

> 
> 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.
> 
> Signed-off-by: Urja Rannikko <urjaman at gmail.com>

Reviewed-by: Patrick Delaunay <patrick.delaunay at st.com>

For information: complete support of booth POWER sysreset case for stmpic1 is added by 
                          http://patchwork.ozlabs.org/project/uboot/list/?series=108685

> ---
> 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

Regards 

Patrick


More information about the U-Boot mailing list