ARM: imx: replace imx6q_restart() with mxc_restart()
authorShawn Guo <shawn.guo@linaro.org>
Sun, 6 Oct 2013 08:47:46 +0000 (16:47 +0800)
committerShawn Guo <shawn.guo@linaro.org>
Mon, 21 Oct 2013 01:36:53 +0000 (09:36 +0800)
commit87a84b69824d7fd63b20f3bc98d75c0238b8e7d0
tree4515eeea8fd346fa29545dd3d894461455e6f694
parent6fc6c93eb6d07cb622c2ec2e956875c00ef47df3
ARM: imx: replace imx6q_restart() with mxc_restart()

The imx6q_restart() works fine with normal reboot but will run into
problem with emergency reboot like sysrq-b.  In that case, of_iomap()
gets called from interrupt context and hence triggers the BUG_ON in
__get_vm_area_node().

Actually, since commit c1e31d1 (ARM: imx: create
mxc_arch_reset_init_dt() for DT boot), imx6q/dl should try to use
mxc_restart() by calling mxc_arch_reset_init_dt() beforehand, where
things like of_iomap() can be done.

The patch updates mxc_restart() a little bit to get it work for imx6q/dl
and kill imx6q_restart() completely.

Reported-by: Nathan Lynch <nathan_lynch@mentor.com>
Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
arch/arm/mach-imx/common.h
arch/arm/mach-imx/mach-imx6q.c
arch/arm/mach-imx/system.c