PageRenderTime 33ms CodeModel.GetById 24ms app.highlight 7ms RepoModel.GetById 0ms app.codeStats 0ms

/arch/arm/mach-ep93xx/include/mach/entry-macro.S

https://bitbucket.org/sammyz/iscream_thunderc-2.6.35-rebase
Assembly | 59 lines | 48 code | 11 blank | 0 comment | 1 complexity | 07d07e42026a2952f9f570c9a061760e MD5 | raw file
Possible License(s): GPL-2.0, LGPL-2.0, AGPL-1.0
 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