lkml.org 
[lkml]   [2003]   [Sep]   [8]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patches in this message
/
Date
From
Subject[PATCH] Make the Startech UART detection 'more correct'.
Hello.  The following patches (vs 2.4 and 2.6) make the Startech UART
detection 'more correct' The problem is that on with the Motorola
MPC82xx line (8245 for example) it has an internal DUART that it claims
to be PC16550D compatible, and it has an additional EFR (Enhanced
Feature Register) at offset 0x2, like on the Startech UARTS. However,
it is not a Startech, and when it's detected as such, FIFOs don't work.
The fix for this is that the Startech UARTs have a 32 byte FIFO [1] and
the MPC82xx DUARTs have a 16-byte FIFO [2], to check that the FIFO size
is correct for a Startech.

2.4:
===== drivers/char/serial.c 1.34 vs edited =====
--- 1.34/drivers/char/serial.c Sun Jul 6 22:33:28 2003
+++ edited/drivers/char/serial.c Fri Sep 5 15:44:11 2003
@@ -3740,7 +3740,7 @@
if (state->type == PORT_16550A) {
/* Check for Startech UART's */
serial_outp(info, UART_LCR, UART_LCR_DLAB);
- if (serial_in(info, UART_EFR) == 0) {
+ if (serial_in(info, UART_EFR) == 0 && size_fifo(info) != 16) {
state->type = PORT_16650;
} else {
serial_outp(info, UART_LCR, 0xBF);
2.6:
===== drivers/serial/8250.c 1.34 vs edited =====
--- 1.34/drivers/serial/8250.c Sun Jun 15 02:21:11 2003
+++ edited/drivers/serial/8250.c Fri Sep 5 15:43:23 2003
@@ -467,7 +467,7 @@
* Only ST16C650V1 UARTs pass this test.
*/
serial_outp(up, UART_LCR, UART_LCR_DLAB);
- if (serial_in(up, UART_EFR) == 0) {
+ if (serial_in(up, UART_EFR) == 0 && size_fifo(up) != 16) {
DEBUG_AUTOCONF("EFRv1 ");
up->port.type = PORT_16650;
return;
I must admit however, that after reading both datasheets, I'm not sure
if the correct test is for && size_fifo() == 32 or != 16, or if it
matters. Comments?

This was originally fixed by Greg Allen[3].

[1]: http://www.exar.com/products/uartnote.pdf
[2]: http://e-www.motorola.com/brdata/PDFDB/docs/MPC8245UM_CH12.pdf
[3]: http://www.geocrawler.com/archives/3/8358/2002/3/0/8228902/
--
Tom Rini
http://gate.crashing.org/~trini/
[unhandled content-type:application/pgp-signature]
\
 
 \ /
  Last update: 2005-03-22 13:48    [W:0.185 / U:0.012 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site