Re: Christmas list for the kernel

Russell King
2005-11-23T15:52:01Z

On Wed, Nov 23, 2005 at 04:39:35PM +0100, Pierre Ossman wrote:
> Russell King wrote:
> >On Wed, Nov 23, 2005 at 04:20:00PM +0100, Pierre Ossman wrote:
> >
> >>But if no hardware is connected to those devices, then where does the
> >>driver route the setserial stuff?
> >>
> >
> >setserial /dev/ttyS2 port 0x200 irq 5 autoconfig
> >
> >and you might then end up with another serial port detected. If
> >/dev/ttyS2 and above do not exist, you can't do that. That would
> >in turn effectively prevent folk with some serial cards using them
> >with Linux without editing and rebuilding their kernel.
>
> Ah. But why is this not done through module parameters? That would be
> more consistent with how you specify resources for other drivers.

Take a moment to consider how you would supply a large number of ports
via this method - eg, 16 ports, where a port IO and IRQ configuration
takes about 10 characters ("0x1234,11"), and then what about the baud
base, probe flags (auto_irq, skip_test) ?

Also consider that ttyS0 might be your serial console for your headless
box, so you're unable to build 8250 as a module in the first place.

It really isn't simple. Serial _is_ special - and that is why it keeps
sprouting new and wonderful initialisation paths. I'd rather not add
yet another gods greatest invention initialisation path on top of those
we already have.

> >As for the rest of the "setserial stuff" it gets recorded against
> >the port and remembered for when the hardware turns up, which it
> >may do if it's your PCMCIA modem card.
>
> This could be a bit more questionable. Setting the initial state of
> hardware is better done (IMHO) by reacting to some hotplug event. E.g.
> fedora uses an 'install' line in modprobe.conf to restore mixer state
> for sound cards.

Actually, my example was slightly flawed - when the hardware turns up
it gets reset back to something sane. So the settings are merely
remembered while the hardware doesn't exist.

--
Russell King
Linux kernel 2.6 ARM Linux - http://www.arm.linux.org.uk/
maintainer of: 2.6 Serial core