Re: PNP parallel&serial ports: module reload fails (2.6.11)?

Russell King
2005-06-09T21:17:35Z

On Fri, Jun 10, 2005 at 01:07:49AM +0400, Michael Tokarev wrote:
> And this 8250 vs 8250_pnp (and 8250_pci etc, but
> especially 8250_pnp as it is the most interesting one).
> When loading 8250 alone (note that 8250_pnp depends
> on 8250, so 8250 gets loaded first), it detects standard
> serial port(s) just fine. 8250_pnp "redetects" them again
> (see first `modprobe 8250_pnp' above: each ttySN line
> gets repeated twice). But when unloading 8250_pnp, both
> standard ttySNs are deactivated, even when 8250 is still
> here. More, when unloading both 8250_pnp and 8250, and
> loading *only* 8250 after that, no standard ports gets
> detected until 8250_pnp will be loaded (as the devices
> are disabled, and 8250_pnp re-enables them). Ie, this
> whole stuff does not look right. Probably a nitpicking,
> but a bit.. strange. Probably if 8250_pnp will stop
> deactivating the devices (as per above), everything will
> look ok here too. Or, maybe it's a good idea to just
> combine 8250 and 8250_pnp modules (and maybe 8250_serial
> too), esp, since the latter is very small anyway ?

The idea is that 8250 handles those serial ports. 8250_pnp, 8250_pci
and 8250_acorn etc are all probe modules which register with 8250,
know how the bus type works and tells 8250 where the ports are.

It's a cleaner design rather than stuffing multiple bus types into one
driver.

The reason that 8250 first detects your ports is that they're found
via the legacy method which is independent of PnP. As you correctly
sumise, when you unload 8250_pnp, it disables the device so when you
re-load 8250, it's unable to detect your ports using the legacy method.

But the legacy method needs to continue to exist for systems which
don't have PnP enabled.

So, the above behaviour is completely expected and isn't a sign of
a deeper problem.

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