• Michael S. Tsirkin's avatar
    uio: add generic driver for PCI 2.3 devices · ccb86a69
    Michael S. Tsirkin authored
    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: default avatarMichael S. Tsirkin <mst@redhat.com>
    Acked-by: default avatarChris Wright <chrisw@redhat.com>
    Signed-off-by: default avatarHans J. Koch <hjk@linutronix.de>
    Acked-by: default avatarJesse Barnes <jbarnes@virtuousgeek.org>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
    
    ccb86a69
uio_pci_generic.c 5.71 KB