aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/omap24xx/patches-3.3/420-hci-h4p-interrupt-workaround.patch
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/omap24xx/patches-3.3/420-hci-h4p-interrupt-workaround.patch')
-rw-r--r--target/linux/omap24xx/patches-3.3/420-hci-h4p-interrupt-workaround.patch36
1 files changed, 36 insertions, 0 deletions
diff --git a/target/linux/omap24xx/patches-3.3/420-hci-h4p-interrupt-workaround.patch b/target/linux/omap24xx/patches-3.3/420-hci-h4p-interrupt-workaround.patch
new file mode 100644
index 0000000000..0d2b4d24fd
--- /dev/null
+++ b/target/linux/omap24xx/patches-3.3/420-hci-h4p-interrupt-workaround.patch
@@ -0,0 +1,36 @@
+--- a/arch/arm/mach-omap2/omap_hwmod_2xxx_3xxx_ipblock_data.c
++++ b/arch/arm/mach-omap2/omap_hwmod_2xxx_3xxx_ipblock_data.c
+@@ -235,7 +235,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 }
+ };
+
+--- a/drivers/tty/serial/omap-serial.c
++++ b/drivers/tty/serial/omap-serial.c
+@@ -517,8 +517,10 @@ static int serial_omap_startup(struct ua
+ /*
+ * Allocate the IRQ
+ */
+- retval = request_irq(up->port.irq, serial_omap_irq, up->port.irqflags,
+- up->name, up);
++ retval = 0;
++ if (up->port.irq)
++ retval = request_irq(up->port.irq, serial_omap_irq,
++ up->port.irqflags, up->name, up);
+ if (retval)
+ return retval;
+
+@@ -629,7 +631,8 @@ static void serial_omap_shutdown(struct
+ }
+
+ pm_runtime_put(&up->pdev->dev);
+- free_irq(up->port.irq, up);
++ if (up->port.irq)
++ free_irq(up->port.irq, up);
+ }
+
+ static inline void