[PATCH v3 1/2] firmware: psci: call pm_set_suspend_via_firmware()
Geert Uytterhoeven
geert at linux-m68k.org
Wed Aug 5 04:08:03 EDT 2020
Hi Shimoda-san,
CC linux-pm
On Mon, Jun 22, 2020 at 4:25 AM Yoshihiro Shimoda
<yoshihiro.shimoda.uh at renesas.com> wrote:
> Call pm_set_suspend_via_firmware() in .begin() of psci_suspend_ops
> to use pm_suspend_via_firmware() on PSCI environment.
>
> Signed-off-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh at renesas.com>
Thanks for your patch!
While [PATCH v3 2/2] has been rejected, and a different solution (DT
property "full-pwr-cycle-in-suspend") was accepted, I think this patch
has merits on its own: it makes sure pm_suspend_global_flags contains
the correct state not only for systems using ACPI, but also for PSCI.
> --- a/drivers/firmware/psci/psci.c
> +++ b/drivers/firmware/psci/psci.c
> @@ -309,6 +309,13 @@ static int psci_system_suspend(unsigned long unused)
> __pa_symbol(cpu_resume), 0, 0);
> }
>
> +static int psci_system_suspend_begin(suspend_state_t state)
> +{
> + pm_set_suspend_via_firmware();
> +
> + return 0;
> +}
> +
> static int psci_system_suspend_enter(suspend_state_t state)
> {
Shouldn't you add a call to pm_set_resume_via_firmware() here?
> return cpu_suspend(0, psci_system_suspend);
> @@ -316,6 +323,7 @@ static int psci_system_suspend_enter(suspend_state_t state)
>
> static const struct platform_suspend_ops psci_suspend_ops = {
> .valid = suspend_valid_only_mem,
> + .begin = psci_system_suspend_begin,
> .enter = psci_system_suspend_enter,
> };
Gr{oetje,eeting}s,
Geert
--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert at linux-m68k.org
In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds
More information about the linux-arm-kernel
mailing list