ARM: davinci: select GENERIC_IRQ_MULTI_HANDLER
In order to support SPARSE_IRQ we first need to make davinci use the generic irq handler for ARM. Translate the legacy assembly to C and put the irq handlers into their respective drivers (aintc and cp-intc). Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com> Signed-off-by: Sekhar Nori <nsekhar@ti.com>
This commit is contained in:

committed by
Sekhar Nori

parent
74b0eac242
commit
d0064594f2
@@ -1,39 +0,0 @@
|
||||
/*
|
||||
* Low-level IRQ helper macros for TI DaVinci-based platforms
|
||||
*
|
||||
* Author: Kevin Hilman, MontaVista Software, Inc. <source@mvista.com>
|
||||
*
|
||||
* 2007 (c) MontaVista Software, Inc. This file is licensed under
|
||||
* the terms of the GNU General Public License version 2. This program
|
||||
* is licensed "as is" without any warranty of any kind, whether express
|
||||
* or implied.
|
||||
*/
|
||||
#include <mach/irqs.h>
|
||||
|
||||
.macro get_irqnr_preamble, base, tmp
|
||||
ldr \base, =davinci_intc_base
|
||||
ldr \base, [\base]
|
||||
.endm
|
||||
|
||||
.macro get_irqnr_and_base, irqnr, irqstat, base, tmp
|
||||
#if defined(CONFIG_AINTC) && defined(CONFIG_CP_INTC)
|
||||
ldr \tmp, =davinci_intc_type
|
||||
ldr \tmp, [\tmp]
|
||||
cmp \tmp, #DAVINCI_INTC_TYPE_CP_INTC
|
||||
beq 1001f
|
||||
#endif
|
||||
#if defined(CONFIG_AINTC)
|
||||
ldr \tmp, [\base, #0x14]
|
||||
movs \tmp, \tmp, lsr #2
|
||||
sub \irqnr, \tmp, #1
|
||||
b 1002f
|
||||
#endif
|
||||
#if defined(CONFIG_CP_INTC)
|
||||
1001: ldr \irqnr, [\base, #0x80] /* get irq number */
|
||||
mov \tmp, \irqnr, lsr #31
|
||||
and \irqnr, \irqnr, #0xff /* irq is in bits 0-9 */
|
||||
and \tmp, \tmp, #0x1
|
||||
cmp \tmp, #0x1
|
||||
#endif
|
||||
1002:
|
||||
.endm
|
Reference in New Issue
Block a user