From: Russell King <rmk@arm.linux.org.uk>
To: Tom Rini <trini@kernel.crashing.org>
Cc: tytso@mit.edu, Kernel Mailing List <linux-kernel@vger.kernel.org>,
linux-serial@vger.kernel.org, gallen@arlut.utexas.edu
Subject: Re: [PATCH] Make the Startech UART detection 'more correct'.
Date: Tue, 9 Sep 2003 17:18:59 +0100 [thread overview]
Message-ID: <20030909171859.D4216@flint.arm.linux.org.uk> (raw)
In-Reply-To: <20030908205431.GB3888@ip68-0-152-218.tc.ph.cox.net>; from trini@kernel.crashing.org on Mon, Sep 08, 2003 at 01:54:31PM -0700
On Mon, Sep 08, 2003 at 01:54:31PM -0700, Tom Rini wrote:
> 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.
size_fifo() is claimed to be unreliable at detecting the FIFO size,
so I don't feel safe about using it here.
I'd suggest something like:
serial_outp(port, UART_LCR, UART_LCR_DLAB);
efr = serial_in(port, UART_EFR);
if ((efr & 0xfc) == 0) {
serial_out(port, UART_EFR, 0xac | (efr & 3));
/* if top 6 bits return zero, its motorola */
if (serial_in(port, UART_EFR) == (efr & 3)) {
/* motorola port */
} else {
/* ST16C650V1 port */
}
/* restore old value */
serial_outb(port, UART_EFR, efr);
}
If you can guarantee that the lower two bits will always be zero, you can
drop the frobbing to ignore/preseve the lower two bits.
--
Russell King (rmk@arm.linux.org.uk) http://www.arm.linux.org.uk/personal/
Linux kernel maintainer of:
2.6 ARM Linux - http://www.arm.linux.org.uk/
2.6 PCMCIA - http://pcmcia.arm.linux.org.uk/
2.6 Serial core
next prev parent reply other threads:[~2003-09-09 16:18 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-09-08 20:54 [PATCH] Make the Startech UART detection 'more correct' Tom Rini
2003-09-09 16:18 ` Russell King [this message]
2003-09-09 19:12 ` Stuart MacDonald
2003-09-09 19:12 ` Stuart MacDonald
2003-09-09 19:23 ` Tom Rini
2003-09-09 23:51 ` Tom Rini
2003-09-24 22:40 ` Kumar Gala
2003-09-24 22:40 ` Kumar Gala
2003-11-01 20:43 ` Best way to detect received call on dumb modem Lewis Brown
2003-11-01 21:14 ` Jan-Benedict Glaw
2003-11-02 4:15 ` Lewis Brown
2003-11-02 8:28 ` David Lawyer
2003-11-04 6:17 ` Steve Tell
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20030909171859.D4216@flint.arm.linux.org.uk \
--to=rmk@arm.linux.org.uk \
--cc=gallen@arlut.utexas.edu \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-serial@vger.kernel.org \
--cc=trini@kernel.crashing.org \
--cc=tytso@mit.edu \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.