From: Philippe Langlais on


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(a)vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
From: Alan Cox on
> We have such a platform driver, but I can't see anywhere an example of
> set_termios()
> or another uart_ops function overriding.

The example I referenced shows you how to provide your own
serial_in/serial_out.

You will need to adjust the 8250 driver to add another function pointer
and copy it so that you can also override set_termios.

Alan
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo(a)vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
From: Philippe Langlais on


On 07/27/10 17:05, Alan Cox wrote:
>> We have such a platform driver, but I can't see anywhere an example of
>> set_termios()
>> or another uart_ops function overriding.
>>
> The example I referenced shows you how to provide your own
> serial_in/serial_out.
>
> You will need to adjust the 8250 driver to add another function pointer
> and copy it so that you can also override set_termios.
>
> Alan
>
I try to do that and send a new patch.

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