| 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 | } |
| 55 | |