[PATCH 00/13] ARM: at91; pm: cleanup

From: Alexandre Belloni
Date: Thu Feb 02 2017 - 09:46:24 EST


Hi,

The following patch set is a cleanup of the AT91 PM code.

The main feautres is that it is now using a struct to pass arguments
between the C and the assembly code, allowing for more than 4 variables
to be passed.
It also removes instructions so it is actually faster.

The standby path is also faster now because it is only handled using C,
removing the need for a few comparisons before enabling DRAM self
refresh. This also allows to always propose standby, even when the sram
allocation failed.

Finally, the PM initialization functions are merge, removing the need
for separate paths on at91sam9*

Alexandre Belloni (13):
ARM: at91: pm: cleanup headers
ARM: at91: pm: move at91_ramc_read/write to pm.c
ARM: at91: pm: Move global variables into at91_pm_data
ARM: at91: pm: use struct at91_pm_data in pm_suspend.S
ARM: at91: pm: use struct members directly
ARM: at91: pm: simplify at91rm9200_standby
ARM: at91: pm: Workaround DDRSDRC self-refresh bug with LPDDR1
memories.
ARM: at91: pm: tie the memory controller type to the ramc id
ARM: at91: pm: tie the USB clock mask to the pmc
ARM: at91: pm: merge all at91sam9*_pm_init
ARM: at91: pm: remove at91_pm_set_standby
ARM: at91: pm: use C functions for standby
ARM: at91: pm: Allow PM even if SRAM allocation failed

arch/arm/mach-at91/Makefile | 33 ++++++
arch/arm/mach-at91/at91sam9.c | 45 +-------
arch/arm/mach-at91/generic.h | 8 +-
arch/arm/mach-at91/pm.c | 212 +++++++++++++++++------------------
arch/arm/mach-at91/pm.h | 27 ++---
arch/arm/mach-at91/pm_data-offsets.c | 12 ++
arch/arm/mach-at91/pm_suspend.S | 55 ++-------
7 files changed, 176 insertions(+), 216 deletions(-)
create mode 100644 arch/arm/mach-at91/pm_data-offsets.c

--
2.11.0