Browse Source

ar71xx: use backported MISC IRQ patch

Signed-off-by: Gabor Juhos <[email protected]>

SVN-Revision: 35876
Gabor Juhos 13 years ago
parent
commit
12d49b5195

+ 24 - 0
target/linux/ar71xx/patches-3.8/210-MIPS-ath79-simplify-misc-irq-handling.patch → target/linux/ar71xx/patches-3.8/009-MIPS-ath79-simplify-MISC-IRQ-handling.patch

@@ -1,3 +1,27 @@
+From 1690e8f8efdeedbd23bb34a3bc5803c34f2d3f66 Mon Sep 17 00:00:00 2001
+From: Gabor Juhos <[email protected]>
+Date: Tue, 29 Jan 2013 16:13:17 +0000
+Subject: [PATCH] MIPS: ath79: simplify MISC IRQ handling
+
+commit 9c099c4e79b67d5578ce8142e6214950be4fcf43 upstream.
+
+The current code uses multiple if statements for
+demultiplexing the different interrupt sources.
+Additionally, the MISC interrupt controller has
+32 interrupt sources and the current code does not
+handles all of them.
+
+Get rid of the if statements and process all interrupt
+sources in a loop to fix these issues.
+
+Signed-off-by: Gabor Juhos <[email protected]>
+Patchwork: http://patchwork.linux-mips.org/patch/4874/
+Signed-off-by: John Crispin <[email protected]>
+---
+ arch/mips/ath79/irq.c                  |   45 +++++++-------------------------
+ arch/mips/include/asm/mach-ath79/irq.h |    1 +
+ 2 files changed, 10 insertions(+), 36 deletions(-)
+
 --- a/arch/mips/ath79/irq.c
 +++ b/arch/mips/ath79/irq.c
 @@ -35,44 +35,17 @@ static void ath79_misc_irq_handler(unsig

+ 7 - 7
target/linux/ar71xx/patches-3.8/163-MIPS-ath79-add-IRQ-handling-code-for-the-QCA955X-SoC.patch

@@ -12,7 +12,7 @@ Signed-off-by: Gabor Juhos <[email protected]>
 
 --- a/arch/mips/ath79/irq.c
 +++ b/arch/mips/ath79/irq.c
-@@ -130,7 +130,10 @@ static void __init ath79_misc_irq_init(v
+@@ -103,7 +103,10 @@ static void __init ath79_misc_irq_init(v
  
  	if (soc_is_ar71xx() || soc_is_ar913x())
  		ath79_misc_irq_chip.irq_mask_ack = ar71xx_misc_irq_mask;
@@ -24,7 +24,7 @@ Signed-off-by: Gabor Juhos <[email protected]>
  		ath79_misc_irq_chip.irq_ack = ar724x_misc_irq_ack;
  	else
  		BUG();
-@@ -177,6 +180,88 @@ static void ar934x_ip2_irq_init(void)
+@@ -150,6 +153,88 @@ static void ar934x_ip2_irq_init(void)
  	irq_set_chained_handler(ATH79_CPU_IRQ_IP2, ar934x_ip2_irq_dispatch);
  }
  
@@ -113,7 +113,7 @@ Signed-off-by: Gabor Juhos <[email protected]>
  asmlinkage void plat_irq_dispatch(void)
  {
  	unsigned long pending;
-@@ -212,6 +297,17 @@ asmlinkage void plat_irq_dispatch(void)
+@@ -185,6 +270,17 @@ asmlinkage void plat_irq_dispatch(void)
   * Issue a flush in the handlers to ensure that the driver sees
   * the update.
   */
@@ -131,7 +131,7 @@ Signed-off-by: Gabor Juhos <[email protected]>
  static void ar71xx_ip2_handler(void)
  {
  	ath79_ddr_wb_flush(AR71XX_DDR_REG_FLUSH_PCI);
-@@ -236,11 +332,6 @@ static void ar933x_ip2_handler(void)
+@@ -209,11 +305,6 @@ static void ar933x_ip2_handler(void)
  	do_IRQ(ATH79_CPU_IRQ_IP2);
  }
  
@@ -143,7 +143,7 @@ Signed-off-by: Gabor Juhos <[email protected]>
  static void ar71xx_ip3_handler(void)
  {
  	ath79_ddr_wb_flush(AR71XX_DDR_REG_FLUSH_USB);
-@@ -286,8 +377,11 @@ void __init arch_init_irq(void)
+@@ -259,8 +350,11 @@ void __init arch_init_irq(void)
  		ath79_ip2_handler = ar933x_ip2_handler;
  		ath79_ip3_handler = ar933x_ip3_handler;
  	} else if (soc_is_ar934x()) {
@@ -156,7 +156,7 @@ Signed-off-by: Gabor Juhos <[email protected]>
  	} else {
  		BUG();
  	}
-@@ -298,4 +392,6 @@ void __init arch_init_irq(void)
+@@ -271,4 +365,6 @@ void __init arch_init_irq(void)
  
  	if (soc_is_ar934x())
  		ar934x_ip2_irq_init();
@@ -222,7 +222,7 @@ Signed-off-by: Gabor Juhos <[email protected]>
  
  #define ATH79_MISC_IRQ_BASE	8
  #define ATH79_MISC_IRQ_COUNT	32
-@@ -23,8 +23,13 @@
+@@ -24,8 +24,13 @@
  #define ATH79_IP2_IRQ_COUNT	2
  #define ATH79_IP2_IRQ(_x)	(ATH79_IP2_IRQ_BASE + (_x))