Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

at 77b2555b52a894a2e39a42e43d993df875c46a6a 51 lines 1.2 kB view raw
1/* 2 * include/asm-arm/arch-CLPS711x/entry-macro.S 3 * 4 * Low-level IRQ helper macros for CLPS711X-based platforms 5 * 6 * This file is licensed under the terms of the GNU General Public 7 * License version 2. This program is licensed "as is" without any 8 * warranty of any kind, whether express or implied. 9 */ 10#include <asm/hardware/clps7111.h> 11 12 .macro disable_fiq 13 .endm 14 15#if (INTSR2 - INTSR1) != (INTMR2 - INTMR1) 16#error INTSR stride != INTMR stride 17#endif 18 19 .macro get_irqnr_and_base, irqnr, stat, base, mask 20 mov \base, #CLPS7111_BASE 21 ldr \stat, [\base, #INTSR1] 22 ldr \mask, [\base, #INTMR1] 23 mov \irqnr, #4 24 mov \mask, \mask, lsl #16 25 and \stat, \stat, \mask, lsr #16 26 movs \stat, \stat, lsr #4 27 bne 1001f 28 29 add \base, \base, #INTSR2 - INTSR1 30 ldr \stat, [\base, #INTSR1] 31 ldr \mask, [\base, #INTMR1] 32 mov \irqnr, #16 33 mov \mask, \mask, lsl #16 34 and \stat, \stat, \mask, lsr #16 35 361001: tst \stat, #255 37 addeq \irqnr, \irqnr, #8 38 moveq \stat, \stat, lsr #8 39 tst \stat, #15 40 addeq \irqnr, \irqnr, #4 41 moveq \stat, \stat, lsr #4 42 tst \stat, #3 43 addeq \irqnr, \irqnr, #2 44 moveq \stat, \stat, lsr #2 45 tst \stat, #1 46 addeq \irqnr, \irqnr, #1 47 moveq \stat, \stat, lsr #1 48 tst \stat, #1 @ bit 0 should be set 49 .endm 50 51