fix isolate mode
[openwrt.git] / target / linux / aruba-2.6 / patches / 002-irq.patch
index f6b9425..cc5ea84 100644 (file)
@@ -1,7 +1,7 @@
 diff -Nur linux-2.6.17/arch/mips/aruba/irq.c linux-2.6.17-openwrt/arch/mips/aruba/irq.c
 --- linux-2.6.17/arch/mips/aruba/irq.c 1970-01-01 01:00:00.000000000 +0100
 +++ linux-2.6.17-openwrt/arch/mips/aruba/irq.c 2006-10-12 14:32:40.026285000 -0700
 diff -Nur linux-2.6.17/arch/mips/aruba/irq.c linux-2.6.17-openwrt/arch/mips/aruba/irq.c
 --- linux-2.6.17/arch/mips/aruba/irq.c 1970-01-01 01:00:00.000000000 +0100
 +++ linux-2.6.17-openwrt/arch/mips/aruba/irq.c 2006-10-12 14:32:40.026285000 -0700
-@@ -0,0 +1,282 @@
+@@ -0,0 +1,285 @@
 +#include <linux/errno.h>
 +#include <linux/init.h>
 +#include <linux/kernel_stat.h>
 +#include <linux/errno.h>
 +#include <linux/init.h>
 +#include <linux/kernel_stat.h>
@@ -93,6 +93,9 @@ diff -Nur linux-2.6.17/arch/mips/aruba/irq.c linux-2.6.17-openwrt/arch/mips/arub
 +              int ip = irq - GROUP0_IRQ_BASE;
 +              switch (mips_machtype) {
 +                      case MACH_ARUBA_AP70:
 +              int ip = irq - GROUP0_IRQ_BASE;
 +              switch (mips_machtype) {
 +                      case MACH_ARUBA_AP70:
++                              if (irq >= GROUP4_IRQ_BASE)
++                                      idt_gpio->gpioistat &= ~(1 << (irq - GROUP4_IRQ_BASE));
++
 +                              // irqs are in groups of 32
 +                              // ip is set to the remainder
 +                              group = ip >> 5;
 +                              // irqs are in groups of 32
 +                              // ip is set to the remainder
 +                              group = ip >> 5;
@@ -217,7 +220,7 @@ diff -Nur linux-2.6.17/arch/mips/aruba/irq.c linux-2.6.17-openwrt/arch/mips/arub
 +              irq_desc[i].status = IRQ_DISABLED;
 +              irq_desc[i].action = NULL;
 +              irq_desc[i].depth = 1;
 +              irq_desc[i].status = IRQ_DISABLED;
 +              irq_desc[i].action = NULL;
 +              irq_desc[i].depth = 1;
-+              irq_desc[i].handler = &aruba_irq_type;
++              irq_desc[i].chip = &aruba_irq_type;
 +              spin_lock_init(&irq_desc[i].lock);
 +      }
 +}
 +              spin_lock_init(&irq_desc[i].lock);
 +      }
 +}
@@ -260,7 +263,7 @@ diff -Nur linux-2.6.17/arch/mips/aruba/irq.c linux-2.6.17-openwrt/arch/mips/arub
 +                              pend = READ_PEND_MUSCAT(addr);
 +                              pend &= ~READ_MASK_MUSCAT(addr); // only unmasked interrupts
 +                              pend = 39 - rc32434_clz(pend);
 +                              pend = READ_PEND_MUSCAT(addr);
 +                              pend &= ~READ_MASK_MUSCAT(addr); // only unmasked interrupts
 +                              pend = 39 - rc32434_clz(pend);
-+                              do_IRQ(pend + (group << 5), regs);
++                              do_IRQ(pend + (group << 5));
 +                      }
 +                      break;
 +              case MACH_ARUBA_AP65:
 +                      }
 +                      break;
 +              case MACH_ARUBA_AP65:
@@ -275,11 +278,11 @@ diff -Nur linux-2.6.17/arch/mips/aruba/irq.c linux-2.6.17-openwrt/arch/mips/arub
 +                              pend = READ_PEND_MERLOT(addr);
 +                              pend &= READ_MASK_MERLOT(addr); // only unmasked interrupts
 +                              pend = 31 - rc32434_clz(pend);
 +                              pend = READ_PEND_MERLOT(addr);
 +                              pend &= READ_MASK_MERLOT(addr); // only unmasked interrupts
 +                              pend = 31 - rc32434_clz(pend);
-+                              do_IRQ(pend + GROUP0_IRQ_BASE, regs);
++                              do_IRQ(pend + GROUP0_IRQ_BASE);
 +                      }
 +                      if ((ip = (cp0_cause & 0x3c00))) { // irq 2-5
 +                              pend = 31 - rc32434_clz(ip);
 +                      }
 +                      if ((ip = (cp0_cause & 0x3c00))) { // irq 2-5
 +                              pend = 31 - rc32434_clz(ip);
-+                              do_IRQ(pend - GROUP0_IRQ_BASE, regs);
++                              do_IRQ(pend - GROUP0_IRQ_BASE);
 +                      }
 +                      break;
 +      }
 +                      }
 +                      break;
 +      }
This page took 0.025736 seconds and 4 git commands to generate.