Enabling the Tx interrupt from console_write on buggy UART (UART_BUG_TXEN)
breaks console transmit on said UART. Revert to previous UART_IER restore and
use serial8250_start_tx() to cause the transmit path to start and not hang.
Signed-off-by: Michael W. J. Hordijk <mwh13@xxxxxxxx>
--- linux-2.6.16.y/drivers/serial/8250.c.orig 2006-05-26 21:25:09.000116360 -0400
+++ linux-2.6.16.y/drivers/serial/8250.c 2006-05-26 21:26:54.000841539 -0400
@@ -2229,8 +2229,13 @@ serial8250_console_write(struct console
* and restore the IER
*/
wait_for_xmitr(up, BOTH_EMPTY);
- up->ier |= UART_IER_THRI;
- serial_out(up, UART_IER, ier | UART_IER_THRI);
+ serial_out(up, UART_IER, ier);
+
+ /*
+ * Start transmitting again in case it was clobbered racing between
+ * console and tty output.
+ */
+ serial8250_start_tx(up);
}
static int serial8250_console_setup(struct console *co, char *options)
-
To unsubscribe from this list: send the line "unsubscribe linux-serial" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html