[PATCH v3 0/3] AT91 PM improvements

From: Claudiu Beznea
Date: Wed Aug 05 2020 - 04:36:59 EST


This series adds ULP0 fast mode intended to reduce the suspend/resume
time in the detriment of power consumption (patch 1/3).
Along with this patch 2/3 adds code to avoid requesting a PM mode
not available on platforms not supporting it.
Patch 3/3 decrements a device_node refcount after its usage.

Thank you,
Claudiu Beznea

Changes in v3:
- force STANDBY and ULP0 modes for rm9200 and at91sam9 to avoid
looping over all available modes and thus preserving booting time
- keep static in "static const int modes[] __initconst" in *_pm_init()
functions to avoid compilation error "error: section attribute cannot
be specified for local variables const int modes[] __initconst = {"
- remove sama5_pm() introduced in v2

Changes in v2:
- in patch 2/3:
- move per SoC supported mode arrays in *_pm_init() functions.
- use 2 booleans in at91_pm_modes_validate() for modes validation
- continue to use array of supported modes in at91rm9200_pm_init()
and at91sam9_pm_init() instead of forcing
soc_pm.data.standby_mode = AT91_PM_STANDBY and
soc_pm.data.suspend_mode = AT91_PM_ULP0 to breaking the user
configuration (it might request ulp0 as standby mode or vice versa)

Claudiu Beznea (3):
ARM: at91: pm: add support for ULP0 fast wakeup
ARM: at91: pm: add per soc validation of pm modes
ARM: at91: pm: of_node_put() after its usage

arch/arm/mach-at91/pm.c | 90 ++++++++++++++++++++++++++++++++++++++---
arch/arm/mach-at91/pm.h | 5 ++-
arch/arm/mach-at91/pm_suspend.S | 41 +++++++++++++++++--
3 files changed, 125 insertions(+), 11 deletions(-)