ARM: 8216/1: xscale: correct auxiliary register in suspend/resume
authorDmitry Eremin-Solenikov <dbaryshkov@gmail.com>
Fri, 21 Nov 2014 14:29:00 +0000 (15:29 +0100)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Fri, 21 Nov 2014 15:25:17 +0000 (15:25 +0000)
commitef59a20ba375aeb97b3150a118318884743452a8
tree00d9e19fb7b97ee04a4df9cc83537bb7f6e3a3d5
parent08b964ff3c51b10aaf2e6ba639f40054c09f0f7a
ARM: 8216/1: xscale: correct auxiliary register in suspend/resume

According to the manuals I have, XScale auxiliary register should be
reached with opc_2 = 1 instead of crn = 1. cpu_xscale_proc_init
correctly uses c1, c0, 1 arguments, but cpu_xscale_do_suspend and
cpu_xscale_do_resume use c1, c1, 0. Correct suspend/resume functions to
also use c1, c0, 1.

The issue was primarily noticed thanks to qemu reporing "unsupported
instruction" on the pxa suspend path. Confirmed in PXA210/250 and PXA255
XScale Core manuals and in PXA270 and PXA320 Developers Guides.

Harware tested by me on tosa (pxa255). Robert confirmed on pxa270 board.

Tested-by: Robert Jarzmik <robert.jarzmik@free.fr>
Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
Acked-by: Robert Jarzmik <robert.jarzmik@free.fr>
Cc: stable@vger.kernel.org
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
arch/arm/mm/proc-xscale.S