• Home
  • History
  • Annotate
  • Line#
  • Navigate
  • Raw
  • Download
  • only in /asuswrt-rt-n18u-9.0.0.4.380.2695/release/src-rt-6.x.4708/linux/linux-2.6.36/arch/arm/mach-ep93xx/include/mach/
1/*
2 * arch/arm/mach-ep93xx/include/mach/entry-macro.S
3 * IRQ demultiplexing for EP93xx
4 *
5 * Copyright (C) 2006 Lennert Buytenhek <buytenh@wantstofly.org>
6 *
7 * This program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation; either version 2 of the License, or (at
10 * your option) any later version.
11 */
12#include <mach/ep93xx-regs.h>
13
14		.macro	disable_fiq
15		.endm
16
17		.macro  get_irqnr_preamble, base, tmp
18		.endm
19
20		.macro  arch_ret_to_user, tmp1, tmp2
21		.endm
22
23		.macro	get_irqnr_and_base, irqnr, irqstat, base, tmp
24		ldr	\base, =(EP93XX_AHB_VIRT_BASE)
25		orr	\base, \base, #0x000b0000
26		mov	\irqnr, #0
27		ldr	\irqstat, [\base]		@ lower 32 interrupts
28		cmp	\irqstat, #0
29		bne	1001f
30
31		eor	\base, \base, #0x00070000
32		ldr	\irqstat, [\base]		@ upper 32 interrupts
33		cmp	\irqstat, #0
34		beq	1002f
35		mov	\irqnr, #0x20
36
371001:
38		movs	\tmp, \irqstat, lsl #16
39		movne	\irqstat, \tmp
40		addeq	\irqnr, \irqnr, #16
41
42		movs	\tmp, \irqstat, lsl #8
43		movne	\irqstat, \tmp
44		addeq	\irqnr, \irqnr, #8
45
46		movs	\tmp, \irqstat, lsl #4
47		movne	\irqstat, \tmp
48		addeq	\irqnr, \irqnr, #4
49
50		movs	\tmp, \irqstat, lsl #2
51		movne	\irqstat, \tmp
52		addeq	\irqnr, \irqnr, #2
53
54		movs	\tmp, \irqstat, lsl #1
55		addeq	\irqnr, \irqnr, #1
56		orrs	\base, \base, #1
57
581002:
59		.endm
60