Bug in drivers/serial/of_serial.c?
Arnd Bergmann
arnd at arndb.de
Fri Nov 20 00:01:37 EST 2009
On Thursday 19 November 2009, Alon Ziv wrote:
> On Monday, November 16, 2009, Arnd wrote:
> > > - { .type = "serial", .compatible = "ns16550", .data = (void
> *)PORT_16550, },
> > > + { .type = "serial", .compatible = "ns16550", .data = (void
> *)PORT_16550A, },
> >
> > Does not seem logical. If the device claims compatibility with
> ns16550, we should
> > not automatically assume it's an ns16550a. Why not add another line
> for
> >
>
> Unfortunately, there is no way to change what the device claims--it's
> encoded into the OpenFirmware tree by the EDK tools.
> And, in any case, the device is actually not lying: it is compatible
> with NS16550--just with a non-buggy one. Unfortunately the kernel
> driver for 8250-class UARTs makes the conservative choice to assume any
> 16550 is one of the (early, buggy) revisions where the FIFO was
> non-functional; any 16550 with working UART is classed as a 16550A.
In that case, add another entry for the device encoded in the firmware
itself. The ns16550 entry should be the second one after a more specific
one telling which device it is exactly.
Arnd <><
More information about the Linuxppc-dev
mailing list