• Home
  • History
  • Annotate
  • Line#
  • Navigate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/components/opensource/linux/linux-2.6.36/arch/arm/mach-nomadik/include/mach/
1/*
2 * Low-level IRQ helper macros for Nomadik platforms
3 *
4 * This file is licensed under  the terms of the GNU General Public
5 * License version 2. This program is licensed "as is" without any
6 * warranty of any kind, whether express or implied.
7 */
8
9#include <mach/hardware.h>
10#include <mach/irqs.h>
11
12	.macro	disable_fiq
13	.endm
14
15	.macro	get_irqnr_preamble, base, tmp
16	ldr	\base, =IO_ADDRESS(NOMADIK_IC_BASE)
17	.endm
18
19	.macro	arch_ret_to_user, tmp1, tmp2
20	.endm
21
22	.macro	get_irqnr_and_base, irqnr, irqstat, base, tmp
23
24	/* This stanza gets the irq mask from one of two status registers */
25	mov	\irqnr, #0
26	ldr	\irqstat, [\base, #VIC_REG_IRQSR0]	@ get masked status
27	cmp	\irqstat, #0
28	bne	1001f
29	add	\irqnr, \irqnr, #32
30	ldr	\irqstat, [\base, #VIC_REG_IRQSR1]	@ get masked status
31
321001:	tst	\irqstat, #15
33	bne	1002f
34	add	\irqnr, \irqnr, #4
35	movs	\irqstat, \irqstat, lsr #4
36	bne	1001b
371002:	tst	\irqstat, #1
38	bne	1003f
39	add	\irqnr, \irqnr, #1
40	movs	\irqstat, \irqstat, lsr #1
41	bne	1002b
421003:	/* EQ will be set if no irqs pending */
43	.endm
44