Hi All,
I found that setserial in serial_core.c does not update all port
variables. It _does_ update the type variable properly but fails to update
tx_loadsz. This causes the driver to fail after setserial to another
device i.e. 8250 or 16450.
This patch solves that for the devices which are served by 8250.c. There
is a deeper problem though, setserial does not properly update all port
variables. Maybe the prot drivers should have their own
.setserial entry in the table and handle the details themselves.
--- drivers/serial/8250.c.orig 2007-06-11 20:37:06.000000000 +0200
+++ drivers/serial/8250.c 2007-06-19 14:47:47.000000000 +0200
@@ -1288,7 +1288,7 @@ static void transmit_chars(struct uart_8
return;
}
- count = up->tx_loadsz;
+ count = uart_config[up->port.type].tx_loadsz;
do {
serial_out(up, UART_TX, xmit->buf[xmit->tail]);
xmit->tail = (xmit->tail + 1) & (UART_XMIT_SIZE - 1);
regards
Kees
-
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