55 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			55 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
--- a/arch/arm/mach-omap2/serial.c
 | 
						|
+++ b/arch/arm/mach-omap2/serial.c
 | 
						|
@@ -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);
 | 
						|
 		}
 | 
						|
 	}
 | 
						|
 }
 | 
						|
--- a/arch/arm/mach-omap2/omap_hwmod_2xxx_3xxx_ipblock_data.c
 | 
						|
+++ b/arch/arm/mach-omap2/omap_hwmod_2xxx_3xxx_ipblock_data.c
 | 
						|
@@ -253,7 +253,7 @@ struct omap_hwmod_irq_info omap2_timer11
 | 
						|
 };
 | 
						|
 
 | 
						|
 struct omap_hwmod_irq_info omap2_uart1_mpu_irqs[] = {
 | 
						|
-	{ .irq = INT_24XX_UART1_IRQ, },
 | 
						|
+	{ .irq = 0, },
 | 
						|
 	{ .irq = -1 }
 | 
						|
 };
 | 
						|
 
 |