Fix tusb patch
[openwrt.git] / target / linux / omap24xx / patches-3.1 / 420-hci-h4p-interrupt-workaround.patch
1 Index: linux-3.1-rc4/arch/arm/mach-omap2/serial.c
2 ===================================================================
3 --- linux-3.1-rc4.orig/arch/arm/mach-omap2/serial.c     2011-08-29 06:16:01.000000000 +0200
4 +++ linux-3.1-rc4/arch/arm/mach-omap2/serial.c  2011-10-27 16:38:20.539265654 +0200
5 @@ -546,10 +546,12 @@ static void omap_uart_idle_init(struct o
6                 uart->padconf = 0;
7         }
8  
9 -       uart->irqflags |= IRQF_SHARED;
10 -       ret = request_threaded_irq(uart->irq, NULL, omap_uart_interrupt,
11 -                                  IRQF_SHARED, "serial idle", (void *)uart);
12 -       WARN_ON(ret);
13 +       if (uart->irq) {
14 +               uart->irqflags |= IRQF_SHARED;
15 +               ret = request_threaded_irq(uart->irq, NULL, omap_uart_interrupt,
16 +                                          IRQF_SHARED, "serial idle", (void *)uart);
17 +               WARN_ON(ret);
18 +       }
19  }
20  
21  void omap_uart_enable_irqs(int enable)
22 @@ -560,14 +562,17 @@ void omap_uart_enable_irqs(int enable)
23         list_for_each_entry(uart, &uart_list, node) {
24                 if (enable) {
25                         pm_runtime_put_sync(&uart->pdev->dev);
26 -                       ret = request_threaded_irq(uart->irq, NULL,
27 -                                                  omap_uart_interrupt,
28 -                                                  IRQF_SHARED,
29 -                                                  "serial idle",
30 -                                                  (void *)uart);
31 +                       if (uart->irq) {
32 +                               ret = request_threaded_irq(uart->irq, NULL,
33 +                                                          omap_uart_interrupt,
34 +                                                          IRQF_SHARED,
35 +                                                          "serial idle",
36 +                                                          (void *)uart);
37 +                       }
38                 } else {
39                         pm_runtime_get_noresume(&uart->pdev->dev);
40 -                       free_irq(uart->irq, (void *)uart);
41 +                       if (uart->irq)
42 +                               free_irq(uart->irq, (void *)uart);
43                 }
44         }
45  }
46 Index: linux-3.1-rc4/arch/arm/mach-omap2/omap_hwmod_2xxx_3xxx_ipblock_data.c
47 ===================================================================
48 --- linux-3.1-rc4.orig/arch/arm/mach-omap2/omap_hwmod_2xxx_3xxx_ipblock_data.c  2011-08-29 06:16:01.000000000 +0200
49 +++ linux-3.1-rc4/arch/arm/mach-omap2/omap_hwmod_2xxx_3xxx_ipblock_data.c       2011-10-27 16:44:39.065885130 +0200
50 @@ -253,7 +253,7 @@ struct omap_hwmod_irq_info omap2_timer11
51  };
52  
53  struct omap_hwmod_irq_info omap2_uart1_mpu_irqs[] = {
54 -       { .irq = INT_24XX_UART1_IRQ, },
55 +       { .irq = 0, },
56         { .irq = -1 }
57  };
58