Commit 1be9baa0 authored by Bjorn Helgaas's avatar Bjorn Helgaas Committed by Jesse Barnes

PCI: alpha: use generic pci_swizzle_interrupt_pin()

Use the generic pci_swizzle_interrupt_pin() instead of arch-specific code.

Cc: Ivan Kokshaysky <ink@jurassic.park.msu.ru>
Signed-off-by: default avatarBjorn Helgaas <bjorn.helgaas@hp.com>
Signed-off-by: default avatarJesse Barnes <jbarnes@virtuousgeek.org>
parent 3f9455d4
...@@ -328,7 +328,7 @@ common_swizzle(struct pci_dev *dev, u8 *pinp) ...@@ -328,7 +328,7 @@ common_swizzle(struct pci_dev *dev, u8 *pinp)
u8 pin = *pinp; u8 pin = *pinp;
while (dev->bus->parent) { while (dev->bus->parent) {
pin = bridge_swizzle(pin, PCI_SLOT(dev->devfn)); pin = pci_swizzle_interrupt_pin(dev, pin);
/* Move up the chain of bridges. */ /* Move up the chain of bridges. */
dev = dev->bus->self; dev = dev->bus->self;
} }
......
...@@ -106,16 +106,11 @@ struct pci_iommu_arena; ...@@ -106,16 +106,11 @@ struct pci_iommu_arena;
* Where A = pin 1, B = pin 2 and so on and pin=0 = default = A. * Where A = pin 1, B = pin 2 and so on and pin=0 = default = A.
* Thus, each swizzle is ((pin-1) + (device#-4)) % 4 * Thus, each swizzle is ((pin-1) + (device#-4)) % 4
* *
* The following code swizzles for exactly one bridge. The routine * pci_swizzle_interrupt_pin() swizzles for exactly one bridge. The routine
* common_swizzle below handles multiple bridges. But there are a * common_swizzle below handles multiple bridges. But there are a
* couple boards that do strange things, so we define this here. * couple boards that do strange things.
*/ */
static inline u8 bridge_swizzle(u8 pin, u8 slot)
{
return (((pin-1) + slot) % 4) + 1;
}
/* The following macro is used to implement the table-based irq mapping /* The following macro is used to implement the table-based irq mapping
function for all single-bus Alphas. */ function for all single-bus Alphas. */
......
...@@ -481,7 +481,7 @@ monet_swizzle(struct pci_dev *dev, u8 *pinp) ...@@ -481,7 +481,7 @@ monet_swizzle(struct pci_dev *dev, u8 *pinp)
slot = PCI_SLOT(dev->devfn); slot = PCI_SLOT(dev->devfn);
break; break;
} }
pin = bridge_swizzle(pin, PCI_SLOT(dev->devfn)) ; pin = pci_swizzle_interrupt_pin(dev, pin);
/* Move up the chain of bridges. */ /* Move up the chain of bridges. */
dev = dev->bus->self; dev = dev->bus->self;
......
...@@ -204,7 +204,7 @@ eiger_swizzle(struct pci_dev *dev, u8 *pinp) ...@@ -204,7 +204,7 @@ eiger_swizzle(struct pci_dev *dev, u8 *pinp)
break; break;
} }
/* Must be a card-based bridge. */ /* Must be a card-based bridge. */
pin = bridge_swizzle(pin, PCI_SLOT(dev->devfn)); pin = pci_swizzle_interrupt_pin(dev, pin);
/* Move up the chain of bridges. */ /* Move up the chain of bridges. */
dev = dev->bus->self; dev = dev->bus->self;
......
...@@ -219,7 +219,7 @@ miata_swizzle(struct pci_dev *dev, u8 *pinp) ...@@ -219,7 +219,7 @@ miata_swizzle(struct pci_dev *dev, u8 *pinp)
slot = PCI_SLOT(dev->devfn) + 9; slot = PCI_SLOT(dev->devfn) + 9;
break; break;
} }
pin = bridge_swizzle(pin, PCI_SLOT(dev->devfn)); pin = pci_swizzle_interrupt_pin(dev, pin);
/* Move up the chain of bridges. */ /* Move up the chain of bridges. */
dev = dev->bus->self; dev = dev->bus->self;
......
...@@ -257,7 +257,7 @@ noritake_swizzle(struct pci_dev *dev, u8 *pinp) ...@@ -257,7 +257,7 @@ noritake_swizzle(struct pci_dev *dev, u8 *pinp)
slot = PCI_SLOT(dev->devfn) + 15; slot = PCI_SLOT(dev->devfn) + 15;
break; break;
} }
pin = bridge_swizzle(pin, PCI_SLOT(dev->devfn)) ; pin = pci_swizzle_interrupt_pin(dev, pin);
/* Move up the chain of bridges. */ /* Move up the chain of bridges. */
dev = dev->bus->self; dev = dev->bus->self;
......
...@@ -160,7 +160,7 @@ ruffian_swizzle(struct pci_dev *dev, u8 *pinp) ...@@ -160,7 +160,7 @@ ruffian_swizzle(struct pci_dev *dev, u8 *pinp)
slot = PCI_SLOT(dev->devfn) + 10; slot = PCI_SLOT(dev->devfn) + 10;
break; break;
} }
pin = bridge_swizzle(pin, PCI_SLOT(dev->devfn)); pin = pci_swizzle_interrupt_pin(dev, pin);
/* Move up the chain of bridges. */ /* Move up the chain of bridges. */
dev = dev->bus->self; dev = dev->bus->self;
......
...@@ -425,7 +425,7 @@ lynx_swizzle(struct pci_dev *dev, u8 *pinp) ...@@ -425,7 +425,7 @@ lynx_swizzle(struct pci_dev *dev, u8 *pinp)
slot = PCI_SLOT(dev->devfn) + 11; slot = PCI_SLOT(dev->devfn) + 11;
break; break;
} }
pin = bridge_swizzle(pin, PCI_SLOT(dev->devfn)) ; pin = pci_swizzle_interrupt_pin(dev, pin);
/* Move up the chain of bridges. */ /* Move up the chain of bridges. */
dev = dev->bus->self; dev = dev->bus->self;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment