Russell King wrote: > On Tue, Jul 05, 2005 at 03:19:40PM +0100, David Vrabel wrote: > >>The 8250 serial driver detects the Exar XR16L2551 as a 16550A. The >>XR16L2551 has an EFR register and sleep capabilities (UART_CAP_FIFO | >>UART_CAP_EFR | UART_CAP_SLEEP). However, broken_efr() thinks it's a >>buggy Exar ST16C255x. >> >>... >> >>Also, the initial IER test was failing (after a soft reboot) with the >>XR16L2551 part since the sleep mode bit was set but was read-only. It >>seems sensible to make this test only look at the lower 4 bits. > > ... or maybe this can be used to test for the buggy version. I've redid the patch and added a check for this. Alex, could you test this version, please. >>Index: linux-2.6-working/drivers/serial/8250.c >>=================================================================== >>--- linux-2.6-working.orig/drivers/serial/8250.c 2005-07-04 13:43:13.000000000 +0100 >>+++ linux-2.6-working/drivers/serial/8250.c 2005-07-05 15:08:05.000000000 +0100 >>@@ -249,6 +249,14 @@ >> .fcr = UART_FCR_ENABLE_FIFO | UART_FCR_R_TRIG_10, >> .flags = UART_CAP_FIFO | UART_CAP_UUE, >> }, >>+ [PORT_XR16550] = { >>+ .name = "XR16550", >>+ .fifo_size = 16, >>+ .tx_loadsz = 16, >>+ .fcr = UART_FCR_ENABLE_FIFO | UART_FCR_R_TRIG_01 | >>+ UART_FCR_T_TRIG_00, > > > The docs I've just pulled of Exar's site imply that the XR16L2551 > doesn't have a transmit trigger threshold, so UART_FCR_T_TRIG_00 > shouldn't be specified here. Also, is there a reason for restricting > the RX trigger level to 4 instead of 8 bytes? That's a cut-n-paste mistake. It should be like the 16550A. David Vrabel -- David Vrabel, Design Engineer Arcom, Clifton Road Tel: +44 (0)1223 411200 ext. 3233 Cambridge CB1 7EA, UK Web: http://www.arcom.com/