uio: add generic driver for PCI 2.3 devices
authorMichael S. Tsirkin <mst@redhat.com>
Mon, 20 Jul 2009 07:29:34 +0000 (10:29 +0300)
committerGreg Kroah-Hartman <gregkh@suse.de>
Tue, 15 Sep 2009 16:50:48 +0000 (09:50 -0700)
commitccb86a6907c9ba7b5be5f521362fc308e80bed34
treee10f409f582a50243124d9b8bf38b2ec8be8d5ac
parenta56af87648054089d89874b52e3fc23ed4f274ad
uio: add generic driver for PCI 2.3 devices

This adds a generic uio driver that can bind to any PCI device.  First
user will be virtualization where a qemu userspace process needs to give
guest OS access to the device.

Interrupts are handled using the Interrupt Disable bit in the PCI
command register and Interrupt Status bit in the PCI status register.
All devices compliant to PCI 2.3 (circa 2002) and all compliant PCI
Express devices should support these bits.  Driver detects this support,
and won't bind to devices which do not support the Interrupt Disable Bit
in the command register.

It's expected that more features of interest to virtualization will be
added to this driver in the future. Possibilities are: mmap for device
resources, MSI/MSI-X, eventfd (to interface with kvm), iommu.

Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Acked-by: Chris Wright <chrisw@redhat.com>
Signed-off-by: Hans J. Koch <hjk@linutronix.de>
Acked-by: Jesse Barnes <jbarnes@virtuousgeek.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Documentation/DocBook/uio-howto.tmpl
MAINTAINERS
drivers/uio/Kconfig
drivers/uio/Makefile
drivers/uio/uio_pci_generic.c [new file with mode: 0644]
include/linux/pci_regs.h