ar71xx: rework patch for qca953x/956x
[15.05/openwrt.git] / target / linux / ar71xx / patches-3.18 / 736-MIPS-ath79-fix-chained-irq-disable.patch
index 8cb38d3..8c0cc95 100644 (file)
  
        irq_set_chained_handler(ATH79_CPU_IRQ(2), ar934x_ip2_irq_dispatch);
  }
-@@ -224,15 +225,13 @@ static void qca955x_irq_init(void)
+@@ -182,7 +183,7 @@ static void qca953x_irq_init(void)
+       for (i = ATH79_IP2_IRQ_BASE;
+            i < ATH79_IP2_IRQ_BASE + ATH79_IP2_IRQ_COUNT; i++)
+-              irq_set_chip_and_handler(i, &dummy_irq_chip, handle_level_irq);
++              irq_set_chip_and_handler(i, &ip2_chip, handle_level_irq);
+       irq_set_chained_handler(ATH79_CPU_IRQ(2), qca953x_ip2_irq_dispatch);
+ }
+@@ -256,15 +257,13 @@ static void qca955x_irq_init(void)
  
        for (i = ATH79_IP2_IRQ_BASE;
             i < ATH79_IP2_IRQ_BASE + ATH79_IP2_IRQ_COUNT; i++)
  
        irq_set_chained_handler(ATH79_CPU_IRQ(3), qca955x_ip3_irq_dispatch);
  }
-@@ -313,15 +312,13 @@ static void qca956x_irq_init(void)
+@@ -345,13 +344,13 @@ static void qca956x_irq_init(void)
  
        for (i = ATH79_IP2_IRQ_BASE;
             i < ATH79_IP2_IRQ_BASE + ATH79_IP2_IRQ_COUNT; i++)
--              irq_set_chip_and_handler(i, &dummy_irq_chip,
--                                       handle_level_irq);
+-              irq_set_chip_and_handler(i, &dummy_irq_chip, handle_level_irq);
 +              irq_set_chip_and_handler(i, &ip2_chip, handle_level_irq);
  
        irq_set_chained_handler(ATH79_CPU_IRQ(2), qca956x_ip2_irq_dispatch);
  
        for (i = ATH79_IP3_IRQ_BASE;
             i < ATH79_IP3_IRQ_BASE + ATH79_IP3_IRQ_COUNT; i++)
--              irq_set_chip_and_handler(i, &dummy_irq_chip,
--                                       handle_level_irq);
+-              irq_set_chip_and_handler(i, &dummy_irq_chip, handle_level_irq);
 +              irq_set_chip_and_handler(i, &ip3_chip, handle_level_irq);
  
        irq_set_chained_handler(ATH79_CPU_IRQ(3), qca956x_ip3_irq_dispatch);
  
-@@ -430,8 +427,35 @@ static void ar934x_ip3_handler(void)
+@@ -466,8 +465,35 @@ static void qca953x_ip3_handler(void)
        do_IRQ(ATH79_CPU_IRQ(3));
  }