ARM: at91: pm: cpu_idle: switch DDR to power-down mode
authorNicolas Ferre <nicolas.ferre@microchip.com>
Tue, 14 Mar 2017 08:38:04 +0000 (09:38 +0100)
committerAlexandre Belloni <alexandre.belloni@free-electrons.com>
Tue, 14 Mar 2017 10:09:50 +0000 (11:09 +0100)
commit60b89f1928af80b546b5c3fd8714a62f6f4b8844
tree4db4c0de974fcb1ebfcbf8869ef14e48353f9e95
parent9e10889a3177340dcda7d29c6d8fbd97247b007b
ARM: at91: pm: cpu_idle: switch DDR to power-down mode

On some DDR controllers, compatible with the sama5d3 one,
the sequence to enter/exit/re-enter the self-refresh mode adds
more constrains than what is currently written in the at91_idle
driver. An actual access to the DDR chip is needed between exit
and re-enter of this mode which is somehow difficult to implement.
This sequence can completely hang the SoC. It is particularly
experienced on parts which embed a L2 cache if the code run
between IDLE calls fits in it...

Moreover, as the intention is to enter and exit pretty rapidly
from IDLE, the power-down mode is a good candidate.

So now we use power-down instead of self-refresh. As we can
simplify the code for sama5d3 compatible DDR controllers,
we instantiate a new sama5d3_ddr_standby() function.

Signed-off-by: Nicolas Ferre <nicolas.ferre@microchip.com>
Cc: <stable@vger.kernel.org> # v4.1+
Fixes: 017b5522d5e3 ("ARM: at91: Add new binding for sama5d3-ddramc")
Signed-off-by: Alexandre Belloni <alexandre.belloni@free-electrons.com>
arch/arm/mach-at91/pm.c