Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 21068
b: refs/heads/master
c: 92eb460
h: refs/heads/master
v: v3
  • Loading branch information
John Rose authored and Paul Mackerras committed Mar 16, 2006
1 parent 9ac7b58 commit 89f0bbf
Show file tree
Hide file tree
Showing 5 changed files with 34 additions and 26 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 920573bd03bf690135967b5022362d34ede589c3
refs/heads/master: 92eb4602eb5c37db86cd9d2b1f4c8ca304fbc49f
5 changes: 3 additions & 2 deletions trunk/arch/powerpc/kernel/pci_64.c
Original file line number Diff line number Diff line change
Expand Up @@ -589,7 +589,6 @@ void __devinit scan_phb(struct pci_controller *hose)
#endif /* CONFIG_PPC_MULTIPLATFORM */
if (mode == PCI_PROBE_NORMAL)
hose->last_busno = bus->subordinate = pci_scan_child_bus(bus);
pci_bus_add_devices(bus);
}

static int __init pcibios_init(void)
Expand All @@ -608,8 +607,10 @@ static int __init pcibios_init(void)
printk("PCI: Probing PCI hardware\n");

/* Scan all of the recorded PCI controllers. */
list_for_each_entry_safe(hose, tmp, &hose_list, list_node)
list_for_each_entry_safe(hose, tmp, &hose_list, list_node) {
scan_phb(hose);
pci_bus_add_devices(hose->bus);
}

#ifndef CONFIG_PPC_ISERIES
if (pci_probe_only)
Expand Down
24 changes: 1 addition & 23 deletions trunk/arch/powerpc/kernel/rtas_pci.c
Original file line number Diff line number Diff line change
Expand Up @@ -280,8 +280,7 @@ static int phb_set_bus_ranges(struct device_node *dev,
return 0;
}

static int __devinit setup_phb(struct device_node *dev,
struct pci_controller *phb)
int __devinit setup_phb(struct device_node *dev, struct pci_controller *phb)
{
if (is_python(dev))
python_countermeasures(dev);
Expand Down Expand Up @@ -359,27 +358,6 @@ unsigned long __init find_and_init_phbs(void)
return 0;
}

struct pci_controller * __devinit init_phb_dynamic(struct device_node *dn)
{
struct pci_controller *phb;
int primary;

primary = list_empty(&hose_list);
phb = pcibios_alloc_controller(dn);
if (!phb)
return NULL;
setup_phb(dn, phb);
pci_process_bridge_OF_ranges(phb, dn, primary);

pci_setup_phb_io_dynamic(phb, primary);

pci_devs_phb_init_dynamic(phb);
scan_phb(phb);

return phb;
}
EXPORT_SYMBOL(init_phb_dynamic);

/* RPA-specific bits for removing PHBs */
int pcibios_remove_root_bus(struct pci_controller *phb)
{
Expand Down
28 changes: 28 additions & 0 deletions trunk/arch/powerpc/platforms/pseries/pci_dlpar.c
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@

#include <linux/pci.h>
#include <asm/pci-bridge.h>
#include <asm/ppc-pci.h>

static struct pci_bus *
find_bus_among_children(struct pci_bus *bus,
Expand Down Expand Up @@ -179,3 +180,30 @@ pcibios_add_pci_devices(struct pci_bus * bus)
}
}
EXPORT_SYMBOL_GPL(pcibios_add_pci_devices);

struct pci_controller * __devinit init_phb_dynamic(struct device_node *dn)
{
struct pci_controller *phb;
int primary;

primary = list_empty(&hose_list);
phb = pcibios_alloc_controller(dn);
if (!phb)
return NULL;
setup_phb(dn, phb);
pci_process_bridge_OF_ranges(phb, dn, 0);

pci_setup_phb_io_dynamic(phb, primary);

pci_devs_phb_init_dynamic(phb);

if (dn->child)
eeh_add_device_tree_early(dn);

scan_phb(phb);
pcibios_fixup_new_pci_devices(phb->bus, 0);
pci_bus_add_devices(phb->bus);

return phb;
}
EXPORT_SYMBOL_GPL(init_phb_dynamic);
1 change: 1 addition & 0 deletions trunk/include/asm-powerpc/ppc-pci.h
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@ void *traverse_pci_devices(struct device_node *start, traverse_func pre,

void pci_devs_phb_init(void);
void pci_devs_phb_init_dynamic(struct pci_controller *phb);
int setup_phb(struct device_node *dev, struct pci_controller *phb);
void __devinit scan_phb(struct pci_controller *hose);

/* From rtas_pci.h */
Expand Down

0 comments on commit 89f0bbf

Please sign in to comment.