Messages in this thread | | | Date | Sat, 3 Jun 2006 10:11:33 +0100 | From | Russell King <> | Subject | Re: Bisects that are neither good nor bad |
| |
On Tue, May 30, 2006 at 03:29:26PM +0000, Pavel Machek wrote: > > > > I think I've seen the same problem on one of my (similar spec) laptops. > > > > Serial console was useless. On resume, there's a short spew of garbage > > > > (just like if the baud rate were misconfigured) over serial before it > > > > locks up completely. > > > > > > <http://bugzilla.kernel.org/show_bug.cgi?id=4270> discusses a similar > > > problem on a couple of machines. In my resume script (for a TP 600X), > > > I have to restore the serial console with > > > > > > setserial -a /dev/ttyS0 > > > > > > Until that magic executes, garbage characters (like modem noise) > > > appear across the serial console. > > > > With the resume failure I'm seeing, we don't get back to userspace > > to run anything like this. It goes bang long before that. > > > > The SATA fix Mark proposed also didn't improve the situation for me :-/ > > If setserial -a is needed.. it means that someone really needs to fix > suspend/resume support for serial... do it on working machine to > enable debugging of broken ones...
I've explained why this occurs in bugzilla - but for the sake of repeating repeating repeating myself at great length, let's repeat it again here.
The serial layer does _not_ have access to the "current" termios settings due to the layering by the tty subsystem. If the serial port being used by serial console has been opened once by the user, but is closed at the moment when a suspend/resume cycle occurs, the serial layer and lower level drivers do not have access to the baud rate.
Hence, it is impossible for the serial layer to do a proper resume in this scenario. Either always suspend with the console port open or never open the console port before suspend. Alternatively, we need the tty layer to mature, so that there is some way for drivers to get the termios structures for the console from the upper layer. Or maybe we need the tty layer to be responsible for implementing suspend/resume support for tty devices.
-- Russell King Linux kernel 2.6 ARM Linux - http://www.arm.linux.org.uk/ maintainer of: 2.6 Serial core - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |