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

Alexandre Belloni alexandre.belloni at free-electrons.com
Thu Feb 2 06:45:10 PST 2017


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




More information about the linux-arm-kernel mailing list