diff options
| author | Bjorn Helgaas <bjorn.helgaas@hp.com> | 2008-12-09 16:12:12 -0700 | 
|---|---|---|
| committer | Jesse Barnes <jbarnes@virtuousgeek.org> | 2009-01-07 11:12:51 -0800 | 
| commit | f14d766a1a438fdc69d04b876965d6b26b071f14 (patch) | |
| tree | 065355677f2d249fb838b6eb495f379b647698a0 | |
| parent | 57c2cf71c12318b72ebaa5720d210476b6bac4d4 (diff) | |
| download | olio-linux-3.10-f14d766a1a438fdc69d04b876965d6b26b071f14.tar.xz olio-linux-3.10-f14d766a1a438fdc69d04b876965d6b26b071f14.zip  | |
PCI: arm: use generic pci_swizzle_interrupt_pin()
Use the generic pci_swizzle_interrupt_pin() instead of arch-specific code.
Cc: Russell King <rmk@arm.linux.org.uk>
Signed-off-by: Bjorn Helgaas <bjorn.helgaas@hp.com>
Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
| -rw-r--r-- | arch/arm/kernel/bios32.c | 6 | ||||
| -rw-r--r-- | arch/arm/mach-integrator/pci.c | 11 | 
2 files changed, 5 insertions, 12 deletions
diff --git a/arch/arm/kernel/bios32.c b/arch/arm/kernel/bios32.c index 17a59b6e521..5c5a0bc0670 100644 --- a/arch/arm/kernel/bios32.c +++ b/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/arch/arm/mach-integrator/pci.c b/arch/arm/mach-integrator/pci.c index af7d3ff013e..2fdb95433f0 100644 --- a/arch/arm/mach-integrator/pci.c +++ b/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);  }  |