summaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorVineet Gupta <vgupta@synopsys.com>2013-01-18 10:42:16 +0100
committerVineet Gupta <vgupta@synopsys.com>2013-02-11 15:30:30 +0100
commitac4c244d4e5d914f9a5642cdcc03b18780e55dbc (patch)
treefbc0a3da0a135dac46883eba654c862119060c3e /include
parentARC: Build system: Makefiles, Kconfig, Linker script (diff)
downloadlinux-ac4c244d4e5d914f9a5642cdcc03b18780e55dbc.tar.xz
linux-ac4c244d4e5d914f9a5642cdcc03b18780e55dbc.zip
ARC: irqflags - Interrupt enabling/disabling at in-core intc
ARC700 has an in-core intc which provides 2 priorities (a.k.a.) "levels" of interrupts (per IRQ) hencforth referred to as L1/L2 interrupts. CPU flags register STATUS32 has Interrupt Enable bits per level (E1/E2) to globally enable (or disable) all IRQs at a level. Hence the implementation of arch_local_irq_{save,restore,enable,disable}( ) The STATUS32 reg can be r/w only using the AUX Interface of ARC, hence the use of LR/SR instructions. Further, E1/E2 bits in there can only be updated using the FLAG insn. The intc supports 32 interrupts - and per IRQ enabling is controlled by a bit in the AUX_IENABLE register, hence the implmentation of arch_{,un}mask_irq( ) routines. Signed-off-by: Vineet Gupta <vgupta@synopsys.com> Cc: Thomas Gleixner <tglx@linutronix.de>
Diffstat (limited to 'include')
0 files changed, 0 insertions, 0 deletions