linux/drivers/pci
Suresh Siddha 89027d35aa x64, x2apic/intr-remap: IO-APIC support for interrupt-remapping
IO-APIC support in the presence of interrupt-remapping infrastructure.

IO-APIC RTE will be programmed with interrupt-remapping table entry(IRTE)
index and the IRTE will contain information about the vector, cpu destination,
trigger mode etc, which traditionally was present in the IO-APIC RTE.

Introduce a new irq_chip for cleaner irq migration (in the process
context as opposed to the current irq migration in the context of an interrupt.
interrupt-remapping infrastructure will help us achieve this cleanly).

For edge triggered, irq migration is a simple atomic update(of vector
and cpu destination) of IRTE and flush the hardware cache.

For level triggered, we need to modify the io-apic RTE aswell with the update
vector information, along with modifying IRTE with vector and cpu destination.
So irq migration for level triggered is little  bit more complex compared to
edge triggered migration. But the good news is, we use the same algorithm
for level triggered migration as we have today, only difference being,
we now initiate the irq migration from process context instead of the
interrupt context.

In future, when we do a directed EOI (combined with cpu EOI broadcast
suppression) to the IO-APIC, level triggered irq migration will also be
as simple as edge triggered migration and we can do the irq migration
with a simple atomic update to IO-APIC RTE.

TBD: some tests/changes needed in the presence of fixup_irqs() for
level triggered irq migration.

Signed-off-by: Suresh Siddha <suresh.b.siddha@intel.com>
Cc: akpm@linux-foundation.org
Cc: arjan@linux.intel.com
Cc: andi@firstfloor.org
Cc: ebiederm@xmission.com
Cc: jbarnes@virtuousgeek.org
Cc: steiner@sgi.com
Signed-off-by: Ingo Molnar <mingo@elte.hu>
2008-07-12 08:45:05 +02:00
..
hotplug PCI: acpiphp: cleanup notify handler on all root bridges 2008-07-02 11:27:30 -07:00
pcie PCI: don't enable ASPM on devices with mixed PCIe/PCI functions 2008-05-21 18:32:35 -07:00
.gitignore
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: remove global list of PCI devices 2008-04-20 21:47:02 -07:00
dma_remapping.h x64, x2apic/intr-remap: Interrupt remapping infrastructure 2008-07-12 08:44:53 +02:00
dmar.c x64, x2apic/intr-remap: disable DMA-remapping if Interrupt-remapping is detected (temporary quirk) 2008-07-12 08:45:00 +02: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 PCI: Use pci_find_ht_capability() in drivers/pci/htirq.c 2006-12-20 10:54:42 -08:00
intel-iommu.c x64, x2apic/intr-remap: Interrupt remapping infrastructure 2008-07-12 08:44:53 +02:00
intel-iommu.h x64, x2apic/intr-remap: routines managing Interrupt remapping table entries. 2008-07-12 08:44:54 +02:00
intr_remapping.c x64, x2apic/intr-remap: IO-APIC support for interrupt-remapping 2008-07-12 08:45:05 +02:00
intr_remapping.h x64, x2apic/intr-remap: Interrupt remapping infrastructure 2008-07-12 08:44:53 +02:00
iova.c PCI: iova RB tree setup tweak 2008-04-20 21:47:06 -07:00
iova.h PCI: pci-iommu-iotlb-flushing-speedup 2008-04-20 21:47:13 -07:00
Kconfig PCI: Add Kconfig option to disable deprecated pci_find_* API 2007-11-05 13:35:17 -08:00
Makefile x64, x2apic/intr-remap: parse ioapic scope under vt-d structures 2008-07-12 08:44:50 +02:00
msi.c pci/irq: let pci_device_shutdown to call pci_msi_shutdown v2 2008-04-29 09:12:51 -07:00
msi.h PCI: Make some MSI-X #defines generic 2006-12-01 14:36:56 -08:00
pci-acpi.c ACPI/PCI: another multiple _OSC memory leak fix 2008-05-13 09:51:54 -07:00
pci-driver.c PCI: use dev_to_node in pci_call_probe 2008-05-24 12:09:46 +02:00
pci-sysfs.c PCI: Limit VPD read/write lengths for Broadcom 5706, 5708, 5709 rev. 2008-07-02 11:25:54 -07:00
pci.c PCI: replace remaining __FUNCTION__ occurrences 2008-04-20 21:47:09 -07:00
pci.h PCI: Limit VPD read/write lengths for Broadcom 5706, 5708, 5709 rev. 2008-07-02 11:25:54 -07:00
probe.c x86/pci: remove flag in pci_cfg_space_size_ext 2008-04-29 15:34:05 -07:00
proc.c drivers: use non-racy method for proc entries creation (2) 2008-04-29 08:06:22 -07:00
quirks.c pci: VT3336 can't do MSI either 2008-07-04 10:40:05 -07:00
remove.c PCI: add PCI Express ASPM support 2008-04-20 21:47:03 -07:00
rom.c docbook: fix kernel-api source files 2008-03-03 10:47:14 -08:00
search.c PCI: clean up search.c a lot 2008-04-20 21:46:54 -07:00
setup-bus.c Fix cardbus resource allocation 2008-04-22 18:16:30 -07:00
setup-irq.c kobjects: fix up improper use of the kobject name field 2007-10-12 14:51:02 -07:00
setup-res.c PCI: clean up resource alignment management 2008-04-20 21:47:08 -07:00
syscall.c PCI: remove unneeded lock_kernel() in drivers/pci/syscall.c. 2008-02-01 15:04:21 -08:00