diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2009-01-07 18:41:01 -0500 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2009-01-07 18:41:01 -0500 |
| commit | b424e8d3b438e841cd1700f6433a100a5d611e4a (patch) | |
| tree | 545638d0b925de4c7f740286760767cca86cb91e /arch/mips/pci/pci.c | |
| parent | 7c7758f99d39d529a64d4f60d22129bbf2f16d74 (diff) | |
| parent | f6dc1e5e3d4b523e1616b43beddb04e4fb1d376a (diff) | |
Merge branch 'linux-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci-2.6
* 'linux-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci-2.6: (98 commits)
PCI PM: Put PM callbacks in the order of execution
PCI PM: Run default PM callbacks for all devices using new framework
PCI PM: Register power state of devices during initialization
PCI PM: Call pci_fixup_device from legacy routines
PCI PM: Rearrange code in pci-driver.c
PCI PM: Avoid touching devices behind bridges in unknown state
PCI PM: Move pci_has_legacy_pm_support
PCI PM: Power-manage devices without drivers during suspend-resume
PCI PM: Add suspend counterpart of pci_reenable_device
PCI PM: Fix poweroff and restore callbacks
PCI: Use msleep instead of cpu_relax during ASPM link retraining
PCI: PCIe portdrv: Add kerneldoc comments to remining core funtions
PCI: PCIe portdrv: Rearrange code so that related things are together
PCI: PCIe portdrv: Fix suspend and resume of PCI Express port services
PCI: PCIe portdrv: Add kerneldoc comments to some core functions
x86/PCI: Do not use interrupt links for devices using MSI-X
net: sfc: Use pci_clear_master() to disable bus mastering
PCI: Add pci_clear_master() as opposite of pci_set_master()
PCI hotplug: remove redundant test in cpq hotplug
PCI: pciehp: cleanup register and field definitions
...
Diffstat (limited to 'arch/mips/pci/pci.c')
| -rw-r--r-- | arch/mips/pci/pci.c | 24 |
1 files changed, 1 insertions, 23 deletions
diff --git a/arch/mips/pci/pci.c b/arch/mips/pci/pci.c index 62cae740e250..b0eb9e75c682 100644 --- a/arch/mips/pci/pci.c +++ b/arch/mips/pci/pci.c | |||
| @@ -149,28 +149,6 @@ out: | |||
| 149 | "Skipping PCI bus scan due to resource conflict\n"); | 149 | "Skipping PCI bus scan due to resource conflict\n"); |
| 150 | } | 150 | } |
| 151 | 151 | ||
| 152 | /* Most MIPS systems have straight-forward swizzling needs. */ | ||
| 153 | |||
| 154 | static inline u8 bridge_swizzle(u8 pin, u8 slot) | ||
| 155 | { | ||
| 156 | return (((pin - 1) + slot) % 4) + 1; | ||
| 157 | } | ||
| 158 | |||
| 159 | static u8 __init common_swizzle(struct pci_dev *dev, u8 *pinp) | ||
| 160 | { | ||
| 161 | u8 pin = *pinp; | ||
| 162 | |||
| 163 | while (dev->bus->parent) { | ||
| 164 | pin = bridge_swizzle(pin, PCI_SLOT(dev->devfn)); | ||
| 165 | /* Move up the chain of bridges. */ | ||
| 166 | dev = dev->bus->self; | ||
| 167 | } | ||
| 168 | *pinp = pin; | ||
| 169 | |||
| 170 | /* The slot is the slot of the last bridge. */ | ||
| 171 | return PCI_SLOT(dev->devfn); | ||
| 172 | } | ||
| 173 | |||
| 174 | static int __init pcibios_init(void) | 152 | static int __init pcibios_init(void) |
| 175 | { | 153 | { |
| 176 | struct pci_controller *hose; | 154 | struct pci_controller *hose; |
| @@ -179,7 +157,7 @@ static int __init pcibios_init(void) | |||
| 179 | for (hose = hose_head; hose; hose = hose->next) | 157 | for (hose = hose_head; hose; hose = hose->next) |
| 180 | pcibios_scanbus(hose); | 158 | pcibios_scanbus(hose); |
| 181 | 159 | ||
| 182 | pci_fixup_irqs(common_swizzle, pcibios_map_irq); | 160 | pci_fixup_irqs(pci_common_swizzle, pcibios_map_irq); |
| 183 | 161 | ||
| 184 | pci_initialized = 1; | 162 | pci_initialized = 1; |
| 185 | 163 | ||
