linux/drivers/pci
Sheng Yang 8dd7f8036c PCI: add support for function level reset
Sometimes, it's necessary to enable software's ability to quiesce and
reset endpoint hardware with function-level granularity, so provide
support for it.

The patch implement Function Level Reset(FLR) feature following PCI-e
spec. And this is the first step. We would add more generic method, like
D0/D3, to allow more devices support this function.

The patch contains two functions. pcie_reset_function() is the new
driver API, and, contains some action to quiesce a device.  The other
function is a helper:  pcie_execute_reset_function() just executes the
reset for a particular device function.

Current the usage model is in KVM. Function reset is necessary for
assigning device to a guest, or moving it between partitions.

For Function Level Reset(FLR), please refer to PCI Express spec chapter
6.6.2.

Signed-off-by: Sheng Yang <sheng@linux.intel.com>
Signed-off-by: Matthew Wilcox <willy@linux.intel.com>
Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
2008-10-22 16:42:35 -07:00
..
hotplug PCI hotplug: fix get_##name return value problem 2008-10-20 11:01:50 -07:00
pcie PCI: fix AER capability check 2008-10-20 11:01:52 -07:00
.gitignore
Kconfig PCI: Add Kconfig option to disable deprecated pci_find_* API 2007-11-05 13:35:17 -08:00
Makefile Merge branch 'linus' into x86/x2apic 2008-07-18 22:50:34 +02:00
access.c PCI: Limit VPD read/write lengths for Broadcom 5706, 5708, 5709 rev. 2008-07-02 11:25:54 -07:00
bus.c PCI: make CPU list affinity visible 2008-10-20 10:53:51 -07:00
dmar.c Merge branch 'genirq-v28-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2008-10-20 13:23:01 -07:00
hotplug-pci.c PCI: fix section mismatch warning in pci_scan_child_bus 2008-03-04 15:07:03 -08:00
hotplug.c Driver core: change add_uevent_var to use a struct 2007-10-12 14:51:01 -07:00
htirq.c genirq: remove sparse irq code 2008-10-16 16:53:15 +02:00
intel-iommu.c intel-iommu: typo fix and correct word in the comment 2008-10-20 08:52:34 -07:00
intr_remapping.c Merge branch 'genirq-v28-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2008-10-20 13:23:01 -07:00
intr_remapping.h VT-d: Changes to support KVM 2008-10-15 14:24:08 +02:00
iova.c VT-d: Changes to support KVM 2008-10-15 14:24:08 +02:00
msi.c ACPI/PCI: Set support bit for MSI in support field of _OSC 2008-10-22 16:42:35 -07:00
msi.h
pci-acpi.c ACPI/PCI: Fix return value of acpi_cuery_osc() 2008-10-22 16:42:34 -07:00
pci-driver.c PCI: Check dynids driver_data value for validity 2008-10-20 10:48:35 -07:00
pci-sysfs.c PCI: Add ability to mmap legacy_io on some platforms 2008-10-20 11:01:46 -07:00
pci.c PCI: add support for function level reset 2008-10-22 16:42:35 -07:00
pci.h ACPI/PCI: Set support bit for MSI in support field of _OSC 2008-10-22 16:42:35 -07:00
probe.c PCI: Add ability to mmap legacy_io on some platforms 2008-10-20 11:01:46 -07:00
proc.c PCI: fixup sparse endianness warnings in proc.c 2008-07-22 15:19:44 -07:00
quirks.c PCI: remove #ifdef DEBUG around dev_dbg call 2008-10-20 11:01:50 -07:00
remove.c PCI: fix sparse warning in pci_remove_behind_bridge 2008-10-20 10:54:25 -07:00
rom.c Export the ROM enable/disable helpers 2008-09-26 18:59:05 -06:00
search.c PCI: Fix reference counting bug 2008-10-22 16:42:35 -07:00
setup-bus.c PCI: use resource_size() everywhere. 2008-10-20 10:54:28 -07:00
setup-irq.c PCI: use dev_printk when possible 2008-06-25 16:05:13 -07:00
setup-res.c PCI: use resource_size() everywhere. 2008-10-20 10:54:28 -07:00
slot.c PCI: connect struct pci_dev to struct pci_slot 2008-10-20 10:53:52 -07:00
syscall.c PCI: remove unneeded lock_kernel() in drivers/pci/syscall.c. 2008-02-01 15:04:21 -08:00