[PATCH 00/12] PCI: unify P2P bridge INTx swizzling

Bjorn Helgaas
2008-12-09T23:11:40Z

This series adds a pci_swizzle_interrupt_pin() function in the PCI
core. Most architectures currently implement this independently.

After this series, many of the callers of pci_swizzle_interrupt_pin()
follow a similar pattern. I'd like to consolidate those callers, too,
but I haven't started that yet.

One strange thing I'd like to understand eventually is why the
swizzle in acpi_pci_irq_derive() does something special for CardBus
bridges, while no other architecture does.

Comments welcome.

These patches have been compile-tested on:
alpha
arm
ia64
mips
powerpc (ppc64)
sh
x86 (32-bit)
x86 (64-bit)

I've boot-tested these architectures:
ia64
x86 (32-bit)

I haven't compiled parisc for want of a cross-compiler.

Bjorn

---

Bjorn Helgaas (12):
PCI: x86: use generic pci_swizzle_interrupt_pin()
PCI: sh: use generic pci_swizzle_interrupt_pin()
PCI: powerpc: use generic pci_swizzle_interrupt_pin()
PCI: parisc: use generic pci_swizzle_interrupt_pin()
PCI: mips: use generic pci_swizzle_interrupt_pin()
PCI: arm: use generic pci_swizzle_interrupt_pin()
PCI: alpha: use generic pci_swizzle_interrupt_pin()
PCI: add pci_swizzle_interrupt_pin()
x86/PCI: minor logic simplications
x86/PCI: use config space encoding for interrupt pins
PCI: use config space encoding in pci_get_interrupt_pin()
PCI Hotplug: cpqphp: use config space PCI interrupt pin encoding

arch/alpha/kernel/pci.c | 2 +
arch/alpha/kernel/pci_impl.h | 9 +-----
arch/alpha/kernel/sys_dp264.c | 2 +
arch/alpha/kernel/sys_eiger.c | 2 +
arch/alpha/kernel/sys_miata.c | 2 +
arch/alpha/kernel/sys_noritake.c | 2 +
arch/alpha/kernel/sys_ruffian.c | 2 +
arch/alpha/kernel/sys_sable.c | 2 +
arch/arm/kernel/bios32.c | 6 ++--
arch/arm/mach-integrator/pci.c | 11 +-------
arch/mips/pci/pci-ip27.c | 6 ----
arch/mips/pci/pci.c | 9 +-----
arch/powerpc/kernel/prom_parse.c | 7 +----
arch/sh/drivers/pci/ops-cayman.c | 9 +-----
arch/sh/drivers/pci/pci.c | 7 +----
arch/x86/pci/irq.c | 54 +++++++++++++++++--------------------
arch/x86/pci/visws.c | 7 +----
drivers/parisc/dino.c | 4 +--
drivers/parisc/iosapic.c | 3 +-
drivers/pci/hotplug/cpqphp_ctrl.c | 4 +--
drivers/pci/hotplug/cpqphp_pci.c | 2 +
drivers/pci/pci.c | 10 +++++--
include/linux/pci.h | 1 +
23 files changed, 60 insertions(+), 103 deletions(-)

--
Signature