From 57ab6d9c5c952371dcd190a5113552ce130a3ab2 Mon Sep 17 00:00:00 2001 From: Bjorn Helgaas Date: Tue, 9 Dec 2008 16:12:12 -0700 Subject: [PATCH] --- yaml --- r: 127367 b: refs/heads/master c: f14d766a1a438fdc69d04b876965d6b26b071f14 h: refs/heads/master i: 127365: 0c498ffbd052aaaf4fca34861c6e203f03f307ce 127363: 0284a9107afa654808904cda71085a4af8896cea 127359: 3da4efa3c396747c21ef2c31429e4f8f7fe4bce2 v: v3 --- [refs] | 2 +- trunk/arch/arm/kernel/bios32.c | 6 +++--- trunk/arch/arm/mach-integrator/pci.c | 11 ++--------- 3 files changed, 6 insertions(+), 13 deletions(-) diff --git a/[refs] b/[refs] index b5a915ff0beb..ce1de2be13c1 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 57c2cf71c12318b72ebaa5720d210476b6bac4d4 +refs/heads/master: f14d766a1a438fdc69d04b876965d6b26b071f14 diff --git a/trunk/arch/arm/kernel/bios32.c b/trunk/arch/arm/kernel/bios32.c index 17a59b6e521f..5c5a0bc06709 100644 --- a/trunk/arch/arm/kernel/bios32.c +++ b/trunk/arch/arm/kernel/bios32.c @@ -491,17 +491,17 @@ EXPORT_SYMBOL(pcibios_bus_to_resource); */ u8 __devinit pci_std_swizzle(struct pci_dev *dev, u8 *pinp) { - int pin = *pinp - 1; + int pin = *pinp; while (dev->bus->self) { - pin = (pin + PCI_SLOT(dev->devfn)) & 3; + pin = pci_swizzle_interrupt_pin(dev, pin); /* * move up the chain of bridges, * swizzling as we go. */ dev = dev->bus->self; } - *pinp = pin + 1; + *pinp = pin; return PCI_SLOT(dev->devfn); } diff --git a/trunk/arch/arm/mach-integrator/pci.c b/trunk/arch/arm/mach-integrator/pci.c index af7d3ff013ec..2fdb95433f0a 100644 --- a/trunk/arch/arm/mach-integrator/pci.c +++ b/trunk/arch/arm/mach-integrator/pci.c @@ -63,13 +63,7 @@ * * Where A = pin 1, B = pin 2 and so on and pin=0 = default = A. * Thus, each swizzle is ((pin-1) + (device#-4)) % 4 - * - * The following code swizzles for exactly one bridge. */ -static inline int bridge_swizzle(int pin, unsigned int slot) -{ - return (pin + slot) & 3; -} /* * This routine handles multiple bridges. @@ -81,15 +75,14 @@ static u8 __init integrator_swizzle(struct pci_dev *dev, u8 *pinp) if (pin == 0) pin = 1; - pin -= 1; while (dev->bus->self) { - pin = bridge_swizzle(pin, PCI_SLOT(dev->devfn)); + pin = pci_swizzle_interrupt_pin(dev, pin); /* * move up the chain of bridges, swizzling as we go. */ dev = dev->bus->self; } - *pinp = pin + 1; + *pinp = pin; return PCI_SLOT(dev->devfn); }