fdd8b079e3
Symbols like SOFT_RESET are way too generic to be exported at large. To avoid this, let's move the mbus bridge register defines into a separate file and include it where needed. This affects mach-kirkwood, mach-loki, mach-mv78xx0 and mach-orion5x simultaneously as they all share code in plat-orion which relies on those defines. Some other defines have been moved to narrower scopes, or simply deleted when they had no user. This fixes compilation problem with mpt2sas on the above listed platforms. Signed-off-by: Nicolas Pitre <nico@marvell.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
48 lines
1.2 KiB
ArmAsm
48 lines
1.2 KiB
ArmAsm
/*
|
|
* arch/arm/mach-mv78xx0/include/mach/entry-macro.S
|
|
*
|
|
* Low-level IRQ helper macros for Marvell MV78xx0 platforms
|
|
*
|
|
* This file is licensed under the terms of the GNU General Public
|
|
* License version 2. This program is licensed "as is" without any
|
|
* warranty of any kind, whether express or implied.
|
|
*/
|
|
|
|
#include <mach/bridge-regs.h>
|
|
|
|
.macro disable_fiq
|
|
.endm
|
|
|
|
.macro arch_ret_to_user, tmp1, tmp2
|
|
.endm
|
|
|
|
.macro get_irqnr_preamble, base, tmp
|
|
ldr \base, =IRQ_VIRT_BASE
|
|
.endm
|
|
|
|
.macro get_irqnr_and_base, irqnr, irqstat, base, tmp
|
|
@ check low interrupts
|
|
ldr \irqstat, [\base, #IRQ_CAUSE_LOW_OFF]
|
|
ldr \tmp, [\base, #IRQ_MASK_LOW_OFF]
|
|
mov \irqnr, #31
|
|
ands \irqstat, \irqstat, \tmp
|
|
bne 1001f
|
|
|
|
@ if no low interrupts set, check high interrupts
|
|
ldr \irqstat, [\base, #IRQ_CAUSE_HIGH_OFF]
|
|
ldr \tmp, [\base, #IRQ_MASK_HIGH_OFF]
|
|
mov \irqnr, #63
|
|
ands \irqstat, \irqstat, \tmp
|
|
bne 1001f
|
|
|
|
@ if no high interrupts set, check error interrupts
|
|
ldr \irqstat, [\base, #IRQ_CAUSE_ERR_OFF]
|
|
ldr \tmp, [\base, #IRQ_MASK_ERR_OFF]
|
|
mov \irqnr, #95
|
|
ands \irqstat, \irqstat, \tmp
|
|
|
|
@ find first active interrupt source
|
|
1001: clzne \irqstat, \irqstat
|
|
subne \irqnr, \irqnr, \irqstat
|
|
.endm
|