Thread (11 messages) 11 messages, 5 authors, 2014-03-21

[RFC] possible removal of omap-serial

From: tony@atomide.com (Tony Lindgren)
Date: 2014-03-21 17:10:30
Also in: linux-omap, linux-serial

* Felipe Balbi [off-list ref] [140320 19:57]:
On Thu, Mar 20, 2014 at 09:45:42PM -0500, Robert Nelson wrote:
quoted
On Thu, Mar 20, 2014 at 9:36 PM, Greg KH [off-list ref] wrote:
quoted
On Thu, Mar 20, 2014 at 08:37:29PM -0500, Felipe Balbi wrote:
quoted
On Thu, Mar 20, 2014 at 08:35:57PM -0500, Felipe Balbi wrote:
quoted
Hi,

On Thu, Mar 20, 2014 at 05:12:28PM -0700, Greg KH wrote:
quoted
On Thu, Mar 20, 2014 at 06:52:10PM -0500, Felipe Balbi wrote:
quoted
Hi folks,

I've been toying with the idea of removing
drivers/tty/serial/omap-serial.c since that's, to put it bluntly, an
ungly copy of 8250 driver.

The original concern was wrt suspend/resume but I think it'd be a far
better approach to implement runtime PM in 8250 and write a rather small
8250-omap.c glue (much like 8250-acorn.c or 8250-dw.c) just to get the
OMAP-specific details out of the way.

The question I have is: omap-serial.c calls the serial devnodes ttyO\d,
instead of ttyS\d so removing omap-serial.c would have a direct impact
in userland. I wonder if it's an acceptable "regression" considering
we'd be able to reuse 8250 gaining proper Flow Control support, proper
DMA support, years and years of bug-fixes, etc.
Breaking device node names is a contentious issue for serial ports, I
don't think you can do that :(
would an upstream udev rule creating a symbolic link from ttyO to ttyS
be enough ?

I didn't test this yet but I guess this is enough (?)

KERNEL=="ttyO[0-9]", GROUP="dialout", SYMLINK+="ttyS"
or actually it should be to other way around, ttyS would be the real
device:

KERNEL=="ttyS[0-9]", GROUP="dialout", SYMLINK+="ttyO"
As udev rules don't ship with the kernel, this might be tough to do :(

Might be easier to make the 8250 driver handle different "names" like
Alan said.
I'll see if I find a way to avoid that or at least see if we find any
other way of creating a symlink... In any case, just switching back to
8250, even if just maintaining ttyO name, is already a big benefit.
quoted
On the support side, I'm not looking forward to this for beagle/panda
users.  We've already converted them once from ttySx -> ttyOx back in
2.6.33/2.6.34? days.  That was an irc/email/u-boot/kernel nightmare...
that's exactly why we're talking about ways to maintain backwards
compatibility here. But I'm more interested in finding a way to switch
over to ttyS and have a symlink to ttyO, that way a simple debootstrap
(or any other ARM distro minimal rootfs) would work out of the box,
without any changes, just like in "normal" systems.
Yeah let's not break things. The symlink solution won't work for kernel
console output so it needs to be dealt with some other way.

It seems that the biggest amount of work is making existing 8250
support the missing features in a clean way and without breaking
other platforms. Looks like 8250_dw.c has some pm_runtime_calls so
obviously it's doable.

Regards,

Tony
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help