Re: [PATCH 25/25] ARM: pm: omap34xx: convert to generic suspend/resume support

Russell King - ARM Linux
2011-06-22T16:10:33Z

A couple of things to point out here:

On Wed, Jun 22, 2011 at 04:16:58PM +0100, Russell King - ARM Linux wrote:
> - mrc p15, 0, r4, c13, c0, 1 @ Context ID
> - mrc p15, 0, r5, c13, c0, 2 @ User r/w thread and process ID
> - mrc p15, 0, r6, c12, c0, 0 @ Secure or NS vector base address
> - mrs r7, cpsr @ Store current cpsr
> - stmia r8!, {r4-r7}

1. The User r/w thread and process ID is not saved/restored by Linux over
context switches, so it doesn't serve any useful purpose to save and
restore over resume.

2. Compare the instruction saving and restoring the vector base address
(see below for the restore code.)

> - ldmia r3!,{r4-r7}
> - mcr p15, 0, r4, c13, c0, 1 @ Context ID
> - mcr p15, 0, r5, c13, c0, 2 @ User r/w thread and process ID
> - mrc p15, 0, r6, c12, c0, 0 @ Secure or NS vector base address
> - msr cpsr, r7 @ store cpsr

Which means it's pointless saving and restoring that register, because
we already aren't restoring it (plus there's the possibility that if we
were to write to it, we'd get an abort.)