diff options
author | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-02-20 12:14:32 -0800 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-02-20 12:14:32 -0800 |
commit | e696268a73f7f59a333624f9abf8ffc9412ee64c (patch) | |
tree | dcbb2ae8df180303d391d7a8e22f58e9f3f3f46a /include/asm-arm/arch-iop13xx/entry-macro.S | |
parent | 91aa69315ef9a76b8f734438617a2e32812b630f (diff) | |
parent | 5a84d159061d914c8dd4aa372ac6e9529c2be453 (diff) |
Merge branch 'for-linus' of master.kernel.org:/home/rmk/linux-2.6-arm
* 'for-linus' of master.kernel.org:/home/rmk/linux-2.6-arm:
[ARM] 4165/1: S3C24XX: Select CONFIG_NO_IOPORT
[ARM] Fix s3c2410 ALSA audio for typedef elimination
[ARM] Fix ARM AACI ALSA driver
[ARM] fix mach-at91 build breakage
[ARM] Fix jornada720 build errors
[ARM] Fix iop13xx build error
[ARM] Fix build error caused by move of apm
[ARM] 4223/1: ixdp2351 : Fix for a define error
[ARM] 4187/1: iop: unify time implementation across iop32x, iop33x, and iop13xx
[ARM] 4186/1: iop: remove cp6_enable/disable routines
[ARM] 4185/2: entry: introduce get_irqnr_preamble and arch_ret_to_user
Diffstat (limited to 'include/asm-arm/arch-iop13xx/entry-macro.S')
-rw-r--r-- | include/asm-arm/arch-iop13xx/entry-macro.S | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/include/asm-arm/arch-iop13xx/entry-macro.S b/include/asm-arm/arch-iop13xx/entry-macro.S index 94c50283dc5..a624a7870c6 100644 --- a/include/asm-arm/arch-iop13xx/entry-macro.S +++ b/include/asm-arm/arch-iop13xx/entry-macro.S @@ -19,21 +19,27 @@ .macro disable_fiq .endm + .macro get_irqnr_preamble, base, tmp + mrc p15, 0, \tmp, c15, c1, 0 + orr \tmp, \tmp, #(1 << 6) + mcr p15, 0, \tmp, c15, c1, 0 @ Enable cp6 access + .endm + /* * Note: a 1-cycle window exists where iintvec will return the value * of iintbase, so we explicitly check for "bad zeros" */ .macro get_irqnr_and_base, irqnr, irqstat, base, tmp - mrc p15, 0, \tmp, c15, c1, 0 - orr \tmp, \tmp, #(1 << 6) - mcr p15, 0, \tmp, c15, c1, 0 @ Enable cp6 access - mrc p6, 0, \irqnr, c3, c2, 0 @ Read IINTVEC cmp \irqnr, #0 mrceq p6, 0, \irqnr, c3, c2, 0 @ Re-read on potentially bad zero adds \irqstat, \irqnr, #1 @ Check for 0xffffffff movne \irqnr, \irqnr, lsr #2 @ Convert to irqnr + .endm - biceq \tmp, \tmp, #(1 << 6) - mcreq p15, 0, \tmp, c15, c1, 0 @ Disable cp6 access if no more interrupts + .macro arch_ret_to_user, tmp1, tmp2 + mrc p15, 0, \tmp1, c15, c1, 0 + ands \tmp2, \tmp1, #(1 << 6) + bicne \tmp1, \tmp1, #(1 << 6) + mcrne p15, 0, \tmp1, c15, c1, 0 @ Disable cp6 access .endm |