n810: Add workaround for bluetooth IRQ issue
authorMichael Büsch <mb@bu3sch.de>
Mon, 7 Mar 2011 16:57:15 +0000 (16:57 +0000)
committerMichael Büsch <mb@bu3sch.de>
Mon, 7 Mar 2011 16:57:15 +0000 (16:57 +0000)
SVN-Revision: 25939

target/linux/omap24xx/patches-2.6.38/420-hci-h4p-interrupt-workaround.patch [new file with mode: 0644]
target/linux/omap24xx/patches-2.6.38/830-omap2-serial-fixes.patch

diff --git a/target/linux/omap24xx/patches-2.6.38/420-hci-h4p-interrupt-workaround.patch b/target/linux/omap24xx/patches-2.6.38/420-hci-h4p-interrupt-workaround.patch
new file mode 100644 (file)
index 0000000..91b2340
--- /dev/null
@@ -0,0 +1,58 @@
+Index: linux-2.6.38-rc7/arch/arm/mach-omap2/omap_hwmod_2420_data.c
+===================================================================
+--- linux-2.6.38-rc7.orig/arch/arm/mach-omap2/omap_hwmod_2420_data.c   2011-03-07 16:07:00.174343135 +0100
++++ linux-2.6.38-rc7/arch/arm/mach-omap2/omap_hwmod_2420_data.c        2011-03-07 16:09:15.601997493 +0100
+@@ -362,7 +362,7 @@ static struct omap_hwmod_class uart_clas
+ /* UART1 */
+ static struct omap_hwmod_irq_info uart1_mpu_irqs[] = {
+-      { .irq = INT_24XX_UART1_IRQ, },
++      { .irq = 0, },
+ };
+ static struct omap_hwmod_dma_info uart1_sdma_reqs[] = {
+Index: linux-2.6.38-rc7/arch/arm/mach-omap2/serial.c
+===================================================================
+--- linux-2.6.38-rc7.orig/arch/arm/mach-omap2/serial.c 2011-03-07 16:06:21.934958270 +0100
++++ linux-2.6.38-rc7/arch/arm/mach-omap2/serial.c      2011-03-07 16:08:59.649922915 +0100
+@@ -546,10 +546,12 @@ static void omap_uart_idle_init(struct o
+               uart->padconf = 0;
+       }
+-      uart->irqflags |= IRQF_SHARED;
+-      ret = request_threaded_irq(uart->irq, NULL, omap_uart_interrupt,
+-                                 IRQF_SHARED, "serial idle", (void *)uart);
+-      WARN_ON(ret);
++      if (uart->irq) {
++              uart->irqflags |= IRQF_SHARED;
++              ret = request_threaded_irq(uart->irq, NULL, omap_uart_interrupt,
++                                         IRQF_SHARED, "serial idle", (void *)uart);
++              WARN_ON(ret);
++      }
+ }
+ void omap_uart_enable_irqs(int enable)
+@@ -560,14 +562,17 @@ void omap_uart_enable_irqs(int enable)
+       list_for_each_entry(uart, &uart_list, node) {
+               if (enable) {
+                       pm_runtime_put_sync(&uart->pdev->dev);
+-                      ret = request_threaded_irq(uart->irq, NULL,
+-                                                 omap_uart_interrupt,
+-                                                 IRQF_SHARED,
+-                                                 "serial idle",
+-                                                 (void *)uart);
++                      if (uart->irq) {
++                              ret = request_threaded_irq(uart->irq, NULL,
++                                                         omap_uart_interrupt,
++                                                         IRQF_SHARED,
++                                                         "serial idle",
++                                                         (void *)uart);
++                      }
+               } else {
+                       pm_runtime_get_noresume(&uart->pdev->dev);
+-                      free_irq(uart->irq, (void *)uart);
++                      if (uart->irq)
++                              free_irq(uart->irq, (void *)uart);
+               }
+       }
+ }
index 2a29a8e47f3eb2bb317ca85ea0b216cef9f69958..e503b0e595bf7fa6165757dcaf3ef858b6c447e2 100644 (file)
@@ -1,8 +1,8 @@
-Index: linux-2.6.38-rc6/arch/arm/mach-omap2/serial.c
+Index: linux-2.6.38-rc7/arch/arm/mach-omap2/serial.c
 ===================================================================
---- linux-2.6.38-rc6.orig/arch/arm/mach-omap2/serial.c 2011-02-22 02:25:52.000000000 +0100
-+++ linux-2.6.38-rc6/arch/arm/mach-omap2/serial.c      2011-02-26 22:17:38.356027926 +0100
-@@ -655,6 +655,8 @@
+--- linux-2.6.38-rc7.orig/arch/arm/mach-omap2/serial.c 2011-03-07 17:24:16.786259530 +0100
++++ linux-2.6.38-rc7/arch/arm/mach-omap2/serial.c      2011-03-07 17:24:18.951998600 +0100
+@@ -660,6 +660,8 @@ static void serial_out_override(struct u
  }
  #endif
  
@@ -11,7 +11,7 @@ Index: linux-2.6.38-rc6/arch/arm/mach-omap2/serial.c
  void __init omap_serial_early_init(void)
  {
        int i = 0;
-@@ -670,9 +672,9 @@
+@@ -675,9 +677,9 @@ void __init omap_serial_early_init(void)
                if (!oh)
                        break;