aboutsummaryrefslogtreecommitdiffstats
path: root/arch/tile
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2012-07-24 19:17:07 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2012-07-24 19:17:07 -0400
commit6dd53aa4563a2c69e80a24d2cc68d484b5ea2891 (patch)
tree0cca9f65984b524527910960d972fc6ef85fac88 /arch/tile
parentf14121ab35912e3d2e57ac9a4ce1f9d4b7baeffb (diff)
parent63b96f7baeba71966c723912c3f8f0274577f877 (diff)
Merge tag 'for-3.6' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci
Pull PCI changes from Bjorn Helgaas: "Host bridge hotplug: - Add MMCONFIG support for hot-added host bridges (Jiang Liu) Device hotplug: - Move fixups from __init to __devinit (Sebastian Andrzej Siewior) - Call FINAL fixups for hot-added devices, too (Myron Stowe) - Factor out generic code for P2P bridge hot-add (Yinghai Lu) - Remove all functions in a slot, not just those with _EJx (Amos Kong) Dynamic resource management: - Track bus number allocation (struct resource tree per domain) (Yinghai Lu) - Make P2P bridge 1K I/O windows work with resource reassignment (Bjorn Helgaas, Yinghai Lu) - Disable decoding while updating 64-bit BARs (Bjorn Helgaas) Power management: - Add PCIe runtime D3cold support (Huang Ying) Virtualization: - Add VFIO infrastructure (ACS, DMA source ID quirks) (Alex Williamson) - Add quirks for devices with broken INTx masking (Jan Kiszka) Miscellaneous: - Fix some PCI Express capability version issues (Myron Stowe) - Factor out some arch code with a weak, generic, pcibios_setup() (Myron Stowe)" * tag 'for-3.6' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci: (122 commits) PCI: hotplug: ensure a consistent return value in error case PCI: fix undefined reference to 'pci_fixup_final_inited' PCI: build resource code for M68K architecture PCI: pciehp: remove unused pciehp_get_max_lnk_width(), pciehp_get_cur_lnk_width() PCI: reorder __pci_assign_resource() (no change) PCI: fix truncation of resource size to 32 bits PCI: acpiphp: merge acpiphp_debug and debug PCI: acpiphp: remove unused res_lock sparc/PCI: replace pci_cfg_fake_ranges() with pci_read_bridge_bases() PCI: call final fixups hot-added devices PCI: move final fixups from __init to __devinit x86/PCI: move final fixups from __init to __devinit MIPS/PCI: move final fixups from __init to __devinit PCI: support sizing P2P bridge I/O windows with 1K granularity PCI: reimplement P2P bridge 1K I/O windows (Intel P64H2) PCI: disable MEM decoding while updating 64-bit MEM BARs PCI: leave MEM and IO decoding disabled during 64-bit BAR sizing, too PCI: never discard enable/suspend/resume_early/resume fixups PCI: release temporary reference in __nv_msi_ht_cap_quirk() PCI: restructure 'pci_do_fixups()' ...
Diffstat (limited to 'arch/tile')
-rw-r--r--arch/tile/kernel/pci.c19
1 files changed, 6 insertions, 13 deletions
diff --git a/arch/tile/kernel/pci.c b/arch/tile/kernel/pci.c
index b56d12bf5900..0fdd99d0d8b7 100644
--- a/arch/tile/kernel/pci.c
+++ b/arch/tile/kernel/pci.c
@@ -310,6 +310,7 @@ int __init pcibios_init(void)
310 if (pci_scan_flags[i] == 0 && controllers[i].ops != NULL) { 310 if (pci_scan_flags[i] == 0 && controllers[i].ops != NULL) {
311 struct pci_controller *controller = &controllers[i]; 311 struct pci_controller *controller = &controllers[i];
312 struct pci_bus *bus; 312 struct pci_bus *bus;
313 LIST_HEAD(resources);
313 314
314 if (tile_init_irqs(i, controller)) { 315 if (tile_init_irqs(i, controller)) {
315 pr_err("PCI: Could not initialize IRQs\n"); 316 pr_err("PCI: Could not initialize IRQs\n");
@@ -327,9 +328,11 @@ int __init pcibios_init(void)
327 * This is inlined in linux/pci.h and calls into 328 * This is inlined in linux/pci.h and calls into
328 * pci_scan_bus_parented() in probe.c. 329 * pci_scan_bus_parented() in probe.c.
329 */ 330 */
330 bus = pci_scan_bus(0, controller->ops, controller); 331 pci_add_resource(&resources, &ioport_resource);
332 pci_add_resource(&resources, &iomem_resource);
333 bus = pci_scan_root_bus(NULL, 0, controller->ops, controller, &resources);
331 controller->root_bus = bus; 334 controller->root_bus = bus;
332 controller->last_busno = bus->subordinate; 335 controller->last_busno = bus->busn_res.end;
333 } 336 }
334 } 337 }
335 338
@@ -366,7 +369,7 @@ int __init pcibios_init(void)
366 */ 369 */
367 if ((dev->class >> 8) == PCI_CLASS_BRIDGE_PCI && 370 if ((dev->class >> 8) == PCI_CLASS_BRIDGE_PCI &&
368 (PCI_SLOT(dev->devfn) == 0)) { 371 (PCI_SLOT(dev->devfn) == 0)) {
369 next_bus = dev->subordinate; 372 next_bus = dev->busn_res.end;
370 controllers[i].mem_resources[0] = 373 controllers[i].mem_resources[0] =
371 *next_bus->resource[0]; 374 *next_bus->resource[0];
372 controllers[i].mem_resources[1] = 375 controllers[i].mem_resources[1] =
@@ -401,16 +404,6 @@ void pcibios_set_master(struct pci_dev *dev)
401} 404}
402 405
403/* 406/*
404 * This can be called from the generic PCI layer, but doesn't need to
405 * do anything.
406 */
407char __devinit *pcibios_setup(char *str)
408{
409 /* Nothing needs to be done. */
410 return str;
411}
412
413/*
414 * This is called from the generic Linux layer. 407 * This is called from the generic Linux layer.
415 */ 408 */
416void __devinit pcibios_update_irq(struct pci_dev *dev, int irq) 409void __devinit pcibios_update_irq(struct pci_dev *dev, int irq)