kernel: update kernel from 2.6.38.2 to 2.6.38.6 and refresh patches
[openwrt.git] / target / linux / omap24xx / patches-2.6.38 / 420-hci-h4p-interrupt-workaround.patch
1 --- a/arch/arm/mach-omap2/omap_hwmod_2420_data.c
2 +++ b/arch/arm/mach-omap2/omap_hwmod_2420_data.c
3 @@ -362,7 +362,7 @@ static struct omap_hwmod_class uart_clas
4 /* UART1 */
5
6 static struct omap_hwmod_irq_info uart1_mpu_irqs[] = {
7 - { .irq = INT_24XX_UART1_IRQ, },
8 + { .irq = 0, },
9 };
10
11 static struct omap_hwmod_dma_info uart1_sdma_reqs[] = {
12 --- a/arch/arm/mach-omap2/serial.c
13 +++ b/arch/arm/mach-omap2/serial.c
14 @@ -546,10 +546,12 @@ static void omap_uart_idle_init(struct o
15 uart->padconf = 0;
16 }
17
18 - uart->irqflags |= IRQF_SHARED;
19 - ret = request_threaded_irq(uart->irq, NULL, omap_uart_interrupt,
20 - IRQF_SHARED, "serial idle", (void *)uart);
21 - WARN_ON(ret);
22 + if (uart->irq) {
23 + uart->irqflags |= IRQF_SHARED;
24 + ret = request_threaded_irq(uart->irq, NULL, omap_uart_interrupt,
25 + IRQF_SHARED, "serial idle", (void *)uart);
26 + WARN_ON(ret);
27 + }
28 }
29
30 void omap_uart_enable_irqs(int enable)
31 @@ -560,14 +562,17 @@ void omap_uart_enable_irqs(int enable)
32 list_for_each_entry(uart, &uart_list, node) {
33 if (enable) {
34 pm_runtime_put_sync(&uart->pdev->dev);
35 - ret = request_threaded_irq(uart->irq, NULL,
36 - omap_uart_interrupt,
37 - IRQF_SHARED,
38 - "serial idle",
39 - (void *)uart);
40 + if (uart->irq) {
41 + ret = request_threaded_irq(uart->irq, NULL,
42 + omap_uart_interrupt,
43 + IRQF_SHARED,
44 + "serial idle",
45 + (void *)uart);
46 + }
47 } else {
48 pm_runtime_get_noresume(&uart->pdev->dev);
49 - free_irq(uart->irq, (void *)uart);
50 + if (uart->irq)
51 + free_irq(uart->irq, (void *)uart);
52 }
53 }
54 }
This page took 0.050561 seconds and 5 git commands to generate.