linux-davinci : Add patch to solve strange serial console behavior.
authorPhilip Balister <philip@balister.org>
Fri, 8 Aug 2008 22:01:19 +0000 (22:01 +0000)
committerPhilip Balister <philip@balister.org>
Fri, 8 Aug 2008 22:01:19 +0000 (22:01 +0000)
packages/linux/linux-davinci/8250_davinci.patch [new file with mode: 0644]
packages/linux/linux-davinci_2.6.x+git-davinci.bb

diff --git a/packages/linux/linux-davinci/8250_davinci.patch b/packages/linux/linux-davinci/8250_davinci.patch
new file mode 100644 (file)
index 0000000..3625ded
--- /dev/null
@@ -0,0 +1,28 @@
+--- linux-2.6/drivers/serial/8250.c    2008-08-06 15:56:53.000000000 -0500
++++ linux-2.6-vanilla/drivers/serial/8250.c    2008-08-07 12:24:29.000000000 -0500
+@@ -1867,7 +1867,6 @@
+       }
+       if (is_real_interrupt(up->port.irq)) {
+-              unsigned char iir1;
+               /*
+                * Test for UARTs that do not reassert THRE when the
+                * transmitter is idle and the interrupt has already
+@@ -1881,7 +1880,7 @@
+               wait_for_xmitr(up, UART_LSR_THRE);
+               serial_out_sync(up, UART_IER, UART_IER_THRI);
+               udelay(1); /* allow THRE to set */
+-              iir1 = serial_in(up, UART_IIR);
++              serial_in(up, UART_IIR);
+               serial_out(up, UART_IER, 0);
+               serial_out_sync(up, UART_IER, UART_IER_THRI);
+               udelay(1); /* allow a working UART time to re-assert THRE */
+@@ -1894,7 +1893,7 @@
+                * If the interrupt is not reasserted, setup a timer to
+                * kick the UART on a regular basis.
+                */
+-              if (!(iir1 & UART_IIR_NO_INT) && (iir & UART_IIR_NO_INT)) {
++              if (iir & UART_IIR_NO_INT) {
+                       pr_debug("ttyS%d - using backup timer\n", port->line);
+                       up->timer.function = serial8250_backup_timeout;
+                       up->timer.data = (unsigned long)up;
index 5b5a55a..6560fc9 100644 (file)
@@ -13,6 +13,7 @@ PR = "r2"
 COMPATIBLE_MACHINE = "(davinci-dvevm|davinci-sffsdr)"
 
 SRC_URI = "git://source.mvista.com/git/linux-davinci-2.6.git;protocol=git \
+           file://8250_davinci.patch;patch=1 \
            file://defconfig"
 
 SRC_URI_append_davinci-sffsdr = " file://sffsdr.patch;patch=1"