Re: multiple drivers, single device (was Re: Announce: Linux-next(Or Andrew's dream :-)))

From: Greg KH
Date: Tue Feb 12 2008 - 11:46:35 EST

On Tue, Feb 12, 2008 at 11:24:09AM -0500, Jeff Garzik wrote:
> Greg KH wrote:
>> [1] Hopefully the "multiple drivers for a single device" feature people
>> have been asking for for years will be landing soon, of course the
>> number of odd places in the kernel that made the assumption that we
>> could only have one driver per device is causing lots of fun...
> Color me a bit skeptical... we've always had this capability really: for
> multi-function devices, just register as many subsystems as you need. If
> your device is a network _and_ SCSI device, you can do that with today's
> APIs.

Yes, but that's not the type of devices this is for.

> I just went through a long thread (e1000/e1000e) explaining how much pain
> multiple drivers for the same PCI ID cause on the distro side of things...
> its a mess. In each case you must write special case code to resolve the
> ambiguity. You never know which is the best driver to choose, or proper
> module load order -- which may vary depending on machine, not just static
> information captured from a kernel Makefile.

Oh, I agree, multiple drivers for the same functionality is not a nice
thing from a distro standpoint.

The work I'm doing here is for stupid PCI firmware engineers, who have
created devices that are different things, all bound up under the same
PCI device. I'm thinking of watchdog timers and random number
generator and i2c controller on the same PCI device, or even the more
basic, frame buffer and DRM access to the same PCI video device.

The OLPC is a good example of hardware that needs this kind of

In order to take advantage of the "multiple drivers per device" all
drivers need to guarantee to play nice with others, as they need to be
aware that other drivers will be sharing the hardware.

I'll write up more details later this week, if I get this stuff to work
properly :)


greg k-h
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at
Please read the FAQ at