Re: patch "U6715 8250 serial like driver" added to gregkh-2.6 tree

From: Philippe Langlais
Date: Tue Jul 27 2010 - 10:47:43 EST




On 07/27/10 10:14, Alan Cox wrote:
I think what you need to keep this clean is to create a
port->set_termios() for the 8250 port (akin to
port->serial_in/serial_out) which does the specials you need each end and
calls the standard serial8250_set_termios)

I don't think so, call a function which compute clock each time
we access UART registers isn't optimal, another function to overload ?
set_termios() gets called once at init time and once each time a
caller requests a change in serial parameters. That's not usually
considered a hot path. I'm not suggesting you hide it in the register
methods but add ->set_termios as a method that can be overridden, plus
export the existing one so you can wrap it.

If you can't detect the chip then create yourself a u6715 driver file
which registers the ports you have and specifies the relevant
serial_in/out methods and other detail as well as containing the board
specific routines needed.

See arch/arm/mach-omap2/serial.c for a ARM example doing this, where all
the chip knowledge is nicely buried away in the platform support.
We have such a platform driver, but I can't see anywhere an example of set_termios()
or another uart_ops function overriding.
These platform drivers only add new functions around power & clock.
Platform drivers are initialized before 8250 driver, how to override 8250 driver ?



--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/