linux/arch/arm/mach-mvebu
Thomas Petazzoni 77ea46d133 ARM: mvebu: make sure MMU is disabled in armada_370_xp_cpu_resume
The armada_370_xp_cpu_resume() until now was used only as the function
called by the SoC when returning from a deep idle state (as used in
cpuidle, or when the CPU is brought offline using CPU hotplug).

However, it is now also used when exiting the suspend to RAM state. In
this case, it is the bootloader that calls back into this function,
with the MMU left enabled by the BootROM. Having the MMU enabled when
entering this function confuses the kerrnel because we are not using
the kernel page tables at this point, but in other mvebu functions we
use the information on whether the MMU is enabled or not to find out
whether we should talk to the coherency fabric using a physical
address or a virtual address. To fix that, we simply disable the MMU
when entering this function, so that the kernel is in an expected
situation.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Acked-by: Gregory CLEMENT <gregory.clement@free-electrons.com>
Link: https://lkml.kernel.org/r/1416585613-2113-13-git-send-email-thomas.petazzoni@free-electrons.com
Signed-off-by: Jason Cooper <jason@lakedaemon.net>
2014-11-30 16:40:15 +00:00
..
include/mach ARM: mvebu: Simplify headers and make local 2014-02-22 21:19:59 +00:00
armada-370-xp.h ARM: mvebu: rename the armada_370_xp symbols to mvebu_v7 in pmsu.c 2014-07-24 11:46:13 +00:00
board-v7.c ARM: mvebu: reserve the first 10 KB of each memory bank for suspend/resume 2014-11-30 16:40:13 +00:00
board.h ARM: Kirkwood: Add setup file for netxbig LEDs 2014-06-20 23:47:27 +00:00
coherency_ll.S ARM: convert all "mov.* pc, reg" to "bx reg" for ARMv6+ 2014-07-18 12:29:04 +01:00
coherency.c ARM: mvebu: Fix coherency bus notifiers by using separate notifiers 2014-07-08 13:53:53 +00:00
coherency.h ARM: mvebu: Remove the unused argument of set_cpu_coherent() 2014-05-08 16:18:52 +00:00
common.h ARM: mvebu: implement suspend/resume support for Armada XP 2014-11-30 16:40:12 +00:00
cpu-reset.c ARM: mvebu: Staticize mvebu_cpu_reset_init 2014-06-30 17:41:04 +00:00
dove.c bus: mvebu: pass the coherency availability information at init time 2014-04-24 05:00:36 +00:00
headsmp-a9.S Merge branch 'for-linus' of git://ftp.arm.linux.org.uk/~rmk/linux-arm 2014-08-05 10:05:29 -07:00
headsmp.S ARM: mvebu: Split low level functions to manipulate HW coherency 2014-05-08 16:18:54 +00:00
Kconfig mvebu SoC changes for v3.17 (round 4) 2014-07-26 18:17:08 +02:00
kirkwood-pm.c ARM: mvebu: Simplify headers and make local 2014-02-22 21:19:59 +00:00
kirkwood-pm.h ARM: mvebu: Move kirkwood DT boards into mach-mvebu 2014-02-22 21:19:55 +00:00
kirkwood.c ARM: Kirkwood: Add setup file for netxbig LEDs 2014-06-20 23:47:27 +00:00
kirkwood.h ARM: mvebu: Simplify headers and make local 2014-02-22 21:19:59 +00:00
Makefile ARM: mvebu: Armada XP GP specific suspend/resume code 2014-11-30 16:40:14 +00:00
mvebu-soc-id.c ARM: mvebu: Use system controller to get the soc id when possible 2014-06-30 17:40:59 +00:00
mvebu-soc-id.h ARM: mvebu: add Armada 375 A0 revision definition 2014-05-08 16:40:14 +00:00
netxbig.c ARM: Kirkwood: Add setup file for netxbig LEDs 2014-06-20 23:47:27 +00:00
platsmp-a9.c ARM: mvebu: use the common function for Armada 375 SMP workaround 2014-07-24 11:46:10 +00:00
platsmp.c Merge branch 'mvebu/soc-cpuidle' into mvebu/soc 2014-07-24 23:10:02 +00:00
pm-board.c ARM: mvebu: Armada XP GP specific suspend/resume code 2014-11-30 16:40:14 +00:00
pm.c ARM: mvebu: implement suspend/resume support for Armada XP 2014-11-30 16:40:12 +00:00
pmsu_ll.S ARM: mvebu: make sure MMU is disabled in armada_370_xp_cpu_resume 2014-11-30 16:40:15 +00:00
pmsu.c cpufreq: cpu0: rename driver and internals to 'cpufreq_dt' 2014-10-03 15:37:54 +02:00
pmsu.h ARM: mvebu: implement suspend/resume support for Armada XP 2014-11-30 16:40:12 +00:00
system-controller.c ARM: mvebu: use the common function for Armada 375 SMP workaround 2014-07-24 11:46:10 +00:00