[PATCH v3] uio/pdrv_genirq: Add OF support

Arnd Bergmann arnd at arndb.de
Tue Apr 19 17:32:31 EST 2011


On Tuesday 19 April 2011, Grant Likely wrote:
> On Tue, Apr 19, 2011 at 11:58:25AM +1000, John Williams wrote:
> >
> > I know the arguments against the 'generic-uio' tag, but come on, let's
> > look at the lesser of two evils here!  I call BS on this DTS purity.

Both a specific device ID and something like "generic-uio" are
equally broken:

If you have generic-uio, it is impossible to write an in-kernel driver
for the same hardware without changing the device tree, meaning that
it is impossible to correctly describe the hardware in the device tree.

If you put a meaningful identifier into the match table, it is also
impossible to have an in-kernel driver for the hardware, because now
you have no way to choose whether to handle the device with UIO
or an in-kernel driver.

There may be cases where you have two instances of the same device
in a machine and  want one of them to be driven by UIO and the other
by another driver. A common example of this would be a virtual machine
where one device is passed through to the guest and the other is
used by the host. I've done this for USB input devices and PCI network
interfaces.
 
> Call it what you like, but the reasons are well founded.  The alternative
> that has been proposed which I am in agreement with is to investigate
> giving userspace the hook to tell the kernel at runtime which devices
> should be picked up by the uio driver.

Yes, I believe this is the best option.

> In the mean time, explicitly modifying the match table is an okay
> compromise.

Agreed.

	Arnd


More information about the devicetree-discuss mailing list