diff options
author | Mike Frysinger <vapier@gentoo.org> | 2011-04-15 13:04:59 -0400 |
---|---|---|
committer | Mike Frysinger <vapier@gentoo.org> | 2011-05-25 08:13:43 -0400 |
commit | 8c0541035007bd8bbacfc5d71c696cdf37696794 (patch) | |
tree | 3731d537dcb31b6decfc5493be6f4d5f3d055fb2 /arch/blackfin/mach-common | |
parent | e2a8092c3fa9766248e9515252ae44e6df2d97a0 (diff) |
Blackfin: bf537: demux port H mask A and emac rx ints
The BF537 SIC combines the gpio port H mask A interrupts with the
emac rx interrupt, so we need to demux this in software.
It also combines the gpio port H mask B and the emac tx interrupts,
and the watchdog and port F mask B interrupts, but since we don't
support mask B yet, just add the defines for now.
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Diffstat (limited to 'arch/blackfin/mach-common')
-rw-r--r-- | arch/blackfin/mach-common/ints-priority.c | 22 |
1 files changed, 10 insertions, 12 deletions
diff --git a/arch/blackfin/mach-common/ints-priority.c b/arch/blackfin/mach-common/ints-priority.c index ad28eb12003a..1177369f9922 100644 --- a/arch/blackfin/mach-common/ints-priority.c +++ b/arch/blackfin/mach-common/ints-priority.c | |||
@@ -582,22 +582,20 @@ static void bfin_demux_gpio_block(unsigned int irq) | |||
582 | } | 582 | } |
583 | } | 583 | } |
584 | 584 | ||
585 | static void bfin_demux_gpio_irq(unsigned int inta_irq, | 585 | void bfin_demux_gpio_irq(unsigned int inta_irq, |
586 | struct irq_desc *desc) | 586 | struct irq_desc *desc) |
587 | { | 587 | { |
588 | unsigned int irq; | 588 | unsigned int irq; |
589 | 589 | ||
590 | switch (inta_irq) { | 590 | switch (inta_irq) { |
591 | #if defined(BF537_FAMILY) | 591 | #if defined(BF537_FAMILY) |
592 | case IRQ_PROG_INTA: | 592 | case IRQ_PF_INTA_PG_INTA: |
593 | bfin_demux_gpio_block(IRQ_PF0); | 593 | bfin_demux_gpio_block(IRQ_PF0); |
594 | irq = IRQ_PG0; | 594 | irq = IRQ_PG0; |
595 | break; | 595 | break; |
596 | # if !(defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE)) | 596 | case IRQ_PH_INTA_MAC_RX: |
597 | case IRQ_MAC_RX: | ||
598 | irq = IRQ_PH0; | 597 | irq = IRQ_PH0; |
599 | break; | 598 | break; |
600 | # endif | ||
601 | #elif defined(BF533_FAMILY) | 599 | #elif defined(BF533_FAMILY) |
602 | case IRQ_PROG_INTA: | 600 | case IRQ_PROG_INTA: |
603 | irq = IRQ_PF0; | 601 | irq = IRQ_PF0; |
@@ -881,8 +879,8 @@ static int bfin_gpio_set_wake(struct irq_data *d, unsigned int state) | |||
881 | # define bfin_gpio_set_wake NULL | 879 | # define bfin_gpio_set_wake NULL |
882 | #endif | 880 | #endif |
883 | 881 | ||
884 | static void bfin_demux_gpio_irq(unsigned int inta_irq, | 882 | void bfin_demux_gpio_irq(unsigned int inta_irq, |
885 | struct irq_desc *desc) | 883 | struct irq_desc *desc) |
886 | { | 884 | { |
887 | u32 bank, pint_val; | 885 | u32 bank, pint_val; |
888 | u32 request, irq; | 886 | u32 request, irq; |
@@ -1001,11 +999,11 @@ int __init init_arch_irq(void) | |||
1001 | irq_set_chip(irq, &bfin_internal_irqchip); | 999 | irq_set_chip(irq, &bfin_internal_irqchip); |
1002 | 1000 | ||
1003 | switch (irq) { | 1001 | switch (irq) { |
1004 | #if defined(CONFIG_BF53x) | 1002 | #if defined(BF537_FAMILY) |
1003 | case IRQ_PH_INTA_MAC_RX: | ||
1004 | case IRQ_PF_INTA_PG_INTA: | ||
1005 | #elif defined(BF533_FAMILY) | ||
1005 | case IRQ_PROG_INTA: | 1006 | case IRQ_PROG_INTA: |
1006 | # if defined(BF537_FAMILY) && !(defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE)) | ||
1007 | case IRQ_MAC_RX: | ||
1008 | # endif | ||
1009 | #elif defined(CONFIG_BF54x) | 1007 | #elif defined(CONFIG_BF54x) |
1010 | case IRQ_PINT0: | 1008 | case IRQ_PINT0: |
1011 | case IRQ_PINT1: | 1009 | case IRQ_PINT1: |