aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/powerpc/kernel/isa-bridge.c2
-rw-r--r--arch/powerpc/kernel/pci-common.c4
-rw-r--r--arch/powerpc/kernel/pci_32.c10
-rw-r--r--arch/powerpc/kernel/pci_64.c8
-rw-r--r--arch/powerpc/kernel/pci_dn.c2
-rw-r--r--arch/powerpc/kernel/prom_parse.c2
-rw-r--r--arch/powerpc/kernel/rtas_pci.c2
-rw-r--r--arch/powerpc/platforms/82xx/pq2.c2
-rw-r--r--arch/powerpc/platforms/85xx/mpc85xx_ds.c2
-rw-r--r--arch/powerpc/platforms/86xx/mpc8610_hpcd.c2
-rw-r--r--arch/powerpc/platforms/86xx/mpc86xx_hpcn.c2
-rw-r--r--arch/powerpc/platforms/cell/io-workarounds.c4
-rw-r--r--arch/powerpc/platforms/celleb/io-workarounds.c4
-rw-r--r--arch/powerpc/platforms/celleb/pci.c2
-rw-r--r--arch/powerpc/platforms/maple/pci.c2
-rw-r--r--arch/powerpc/platforms/powermac/pci.c6
-rw-r--r--arch/powerpc/platforms/pseries/iommu.c2
-rw-r--r--include/asm-powerpc/pci-bridge.h5
18 files changed, 31 insertions, 32 deletions
diff --git a/arch/powerpc/kernel/isa-bridge.c b/arch/powerpc/kernel/isa-bridge.c
index 965bfcc9ad2d..ee172aa42aa7 100644
--- a/arch/powerpc/kernel/isa-bridge.c
+++ b/arch/powerpc/kernel/isa-bridge.c
@@ -145,7 +145,7 @@ void __init isa_bridge_find_early(struct pci_controller *hose)
145 for_each_node_by_type(np, "isa") { 145 for_each_node_by_type(np, "isa") {
146 /* Look for our hose being a parent */ 146 /* Look for our hose being a parent */
147 for (parent = of_get_parent(np); parent;) { 147 for (parent = of_get_parent(np); parent;) {
148 if (parent == hose->arch_data) { 148 if (parent == hose->dn) {
149 of_node_put(parent); 149 of_node_put(parent);
150 break; 150 break;
151 } 151 }
diff --git a/arch/powerpc/kernel/pci-common.c b/arch/powerpc/kernel/pci-common.c
index 5a9d4c7bfec5..2f3f30efffed 100644
--- a/arch/powerpc/kernel/pci-common.c
+++ b/arch/powerpc/kernel/pci-common.c
@@ -62,7 +62,7 @@ struct pci_controller *pcibios_alloc_controller(struct device_node *dev)
62 phb->global_number = global_phb_number++; 62 phb->global_number = global_phb_number++;
63 list_add_tail(&phb->list_node, &hose_list); 63 list_add_tail(&phb->list_node, &hose_list);
64 spin_unlock(&hose_spinlock); 64 spin_unlock(&hose_spinlock);
65 phb->arch_data = dev; 65 phb->dn = dev;
66 phb->is_dynamic = mem_init_done; 66 phb->is_dynamic = mem_init_done;
67#ifdef CONFIG_PPC64 67#ifdef CONFIG_PPC64
68 if (dev) { 68 if (dev) {
@@ -137,7 +137,7 @@ struct pci_controller* pci_find_hose_for_OF_device(struct device_node* node)
137 while(node) { 137 while(node) {
138 struct pci_controller *hose, *tmp; 138 struct pci_controller *hose, *tmp;
139 list_for_each_entry_safe(hose, tmp, &hose_list, list_node) 139 list_for_each_entry_safe(hose, tmp, &hose_list, list_node)
140 if (hose->arch_data == node) 140 if (hose->dn == node)
141 return hose; 141 return hose;
142 node = node->parent; 142 node = node->parent;
143 } 143 }
diff --git a/arch/powerpc/kernel/pci_32.c b/arch/powerpc/kernel/pci_32.c
index 0e2bee46304c..096c97e03aa6 100644
--- a/arch/powerpc/kernel/pci_32.c
+++ b/arch/powerpc/kernel/pci_32.c
@@ -662,8 +662,8 @@ pcibios_make_OF_bus_map(void)
662 662
663 /* For each hose, we begin searching bridges */ 663 /* For each hose, we begin searching bridges */
664 list_for_each_entry_safe(hose, tmp, &hose_list, list_node) { 664 list_for_each_entry_safe(hose, tmp, &hose_list, list_node) {
665 struct device_node* node; 665 struct device_node* node = hose->dn;
666 node = (struct device_node *)hose->arch_data; 666
667 if (!node) 667 if (!node)
668 continue; 668 continue;
669 make_one_node_map(node, hose->first_busno); 669 make_one_node_map(node, hose->first_busno);
@@ -742,7 +742,7 @@ static struct device_node *scan_OF_for_pci_bus(struct pci_bus *bus)
742 struct pci_controller *hose = pci_bus_to_host(bus); 742 struct pci_controller *hose = pci_bus_to_host(bus);
743 if (hose == NULL) 743 if (hose == NULL)
744 return NULL; 744 return NULL;
745 return of_node_get(hose->arch_data); 745 return of_node_get(hose->dn);
746 } 746 }
747 747
748 /* not a root bus, we need to get our parent */ 748 /* not a root bus, we need to get our parent */
@@ -812,9 +812,9 @@ pci_device_from_OF_node(struct device_node* node, u8* bus, u8* devfn)
812 return -ENODEV; 812 return -ENODEV;
813 /* Make sure it's really a PCI device */ 813 /* Make sure it's really a PCI device */
814 hose = pci_find_hose_for_OF_device(node); 814 hose = pci_find_hose_for_OF_device(node);
815 if (!hose || !hose->arch_data) 815 if (!hose || !hose->dn)
816 return -ENODEV; 816 return -ENODEV;
817 if (!scan_OF_pci_childs(((struct device_node*)hose->arch_data)->child, 817 if (!scan_OF_pci_childs(hose->dn->child,
818 find_OF_pci_device_filter, (void *)node)) 818 find_OF_pci_device_filter, (void *)node))
819 return -ENODEV; 819 return -ENODEV;
820 reg = of_get_property(node, "reg", NULL); 820 reg = of_get_property(node, "reg", NULL);
diff --git a/arch/powerpc/kernel/pci_64.c b/arch/powerpc/kernel/pci_64.c
index 002cd4cac0f3..6b9a8564e735 100644
--- a/arch/powerpc/kernel/pci_64.c
+++ b/arch/powerpc/kernel/pci_64.c
@@ -458,7 +458,7 @@ EXPORT_SYMBOL(of_scan_pci_bridge);
458void __devinit scan_phb(struct pci_controller *hose) 458void __devinit scan_phb(struct pci_controller *hose)
459{ 459{
460 struct pci_bus *bus; 460 struct pci_bus *bus;
461 struct device_node *node = hose->arch_data; 461 struct device_node *node = hose->dn;
462 int i, mode; 462 int i, mode;
463 struct resource *res; 463 struct resource *res;
464 464
@@ -705,8 +705,7 @@ int pcibios_unmap_io_space(struct pci_bus *bus)
705 if (hose->io_base_alloc == 0) 705 if (hose->io_base_alloc == 0)
706 return 0; 706 return 0;
707 707
708 DBG("IO unmapping for PHB %s\n", 708 DBG("IO unmapping for PHB %s\n", hose->dn->full_name);
709 ((struct device_node *)hose->arch_data)->full_name);
710 DBG(" alloc=0x%p\n", hose->io_base_alloc); 709 DBG(" alloc=0x%p\n", hose->io_base_alloc);
711 710
712 /* This is a PHB, we fully unmap the IO area */ 711 /* This is a PHB, we fully unmap the IO area */
@@ -765,8 +764,7 @@ int __devinit pcibios_map_io_space(struct pci_bus *bus)
765 hose->io_base_virt = (void __iomem *)(area->addr + 764 hose->io_base_virt = (void __iomem *)(area->addr +
766 hose->io_base_phys - phys_page); 765 hose->io_base_phys - phys_page);
767 766
768 DBG("IO mapping for PHB %s\n", 767 DBG("IO mapping for PHB %s\n", hose->dn->full_name);
769 ((struct device_node *)hose->arch_data)->full_name);
770 DBG(" phys=0x%016lx, virt=0x%p (alloc=0x%p)\n", 768 DBG(" phys=0x%016lx, virt=0x%p (alloc=0x%p)\n",
771 hose->io_base_phys, hose->io_base_virt, hose->io_base_alloc); 769 hose->io_base_phys, hose->io_base_virt, hose->io_base_alloc);
772 DBG(" size=0x%016lx (alloc=0x%016lx)\n", 770 DBG(" size=0x%016lx (alloc=0x%016lx)\n",
diff --git a/arch/powerpc/kernel/pci_dn.c b/arch/powerpc/kernel/pci_dn.c
index b4839038613d..85d4d8924b5c 100644
--- a/arch/powerpc/kernel/pci_dn.c
+++ b/arch/powerpc/kernel/pci_dn.c
@@ -133,7 +133,7 @@ void *traverse_pci_devices(struct device_node *start, traverse_func pre,
133 */ 133 */
134void __devinit pci_devs_phb_init_dynamic(struct pci_controller *phb) 134void __devinit pci_devs_phb_init_dynamic(struct pci_controller *phb)
135{ 135{
136 struct device_node * dn = (struct device_node *) phb->arch_data; 136 struct device_node *dn = phb->dn;
137 struct pci_dn *pdn; 137 struct pci_dn *pdn;
138 138
139 /* PHB nodes themselves must not match */ 139 /* PHB nodes themselves must not match */
diff --git a/arch/powerpc/kernel/prom_parse.c b/arch/powerpc/kernel/prom_parse.c
index b5c96af955c6..6bdfaf3f99ea 100644
--- a/arch/powerpc/kernel/prom_parse.c
+++ b/arch/powerpc/kernel/prom_parse.c
@@ -273,7 +273,7 @@ int of_irq_map_pci(struct pci_dev *pdev, struct of_irq *out_irq)
273#else 273#else
274 struct pci_controller *host; 274 struct pci_controller *host;
275 host = pci_bus_to_host(pdev->bus); 275 host = pci_bus_to_host(pdev->bus);
276 ppnode = host ? host->arch_data : NULL; 276 ppnode = host ? host->dn : NULL;
277#endif 277#endif
278 /* No node for host bridge ? give up */ 278 /* No node for host bridge ? give up */
279 if (ppnode == NULL) 279 if (ppnode == NULL)
diff --git a/arch/powerpc/kernel/rtas_pci.c b/arch/powerpc/kernel/rtas_pci.c
index 21f14e57d1f3..3650eb50c27d 100644
--- a/arch/powerpc/kernel/rtas_pci.c
+++ b/arch/powerpc/kernel/rtas_pci.c
@@ -260,7 +260,7 @@ static int phb_set_bus_ranges(struct device_node *dev,
260 260
261int __devinit rtas_setup_phb(struct pci_controller *phb) 261int __devinit rtas_setup_phb(struct pci_controller *phb)
262{ 262{
263 struct device_node *dev = phb->arch_data; 263 struct device_node *dev = phb->dn;
264 264
265 if (is_python(dev)) 265 if (is_python(dev))
266 python_countermeasures(dev); 266 python_countermeasures(dev);
diff --git a/arch/powerpc/platforms/82xx/pq2.c b/arch/powerpc/platforms/82xx/pq2.c
index a497cbaa1ac5..11d1db8bb091 100644
--- a/arch/powerpc/platforms/82xx/pq2.c
+++ b/arch/powerpc/platforms/82xx/pq2.c
@@ -59,7 +59,7 @@ static void __init pq2_pci_add_bridge(struct device_node *np)
59 if (!hose) 59 if (!hose)
60 return; 60 return;
61 61
62 hose->arch_data = np; 62 hose->dn = np;
63 63
64 setup_indirect_pci(hose, r.start + 0x100, r.start + 0x104, 0); 64 setup_indirect_pci(hose, r.start + 0x100, r.start + 0x104, 0);
65 pci_process_bridge_OF_ranges(hose, np, 1); 65 pci_process_bridge_OF_ranges(hose, np, 1);
diff --git a/arch/powerpc/platforms/85xx/mpc85xx_ds.c b/arch/powerpc/platforms/85xx/mpc85xx_ds.c
index 59c121a97ac7..bdb3d0b38cd2 100644
--- a/arch/powerpc/platforms/85xx/mpc85xx_ds.c
+++ b/arch/powerpc/platforms/85xx/mpc85xx_ds.c
@@ -123,7 +123,7 @@ static int mpc85xx_exclude_device(struct pci_controller *hose,
123 struct device_node* node; 123 struct device_node* node;
124 struct resource rsrc; 124 struct resource rsrc;
125 125
126 node = (struct device_node *)hose->arch_data; 126 node = hose->dn;
127 of_address_to_resource(node, 0, &rsrc); 127 of_address_to_resource(node, 0, &rsrc);
128 128
129 if ((rsrc.start & 0xfffff) == primary_phb_addr) { 129 if ((rsrc.start & 0xfffff) == primary_phb_addr) {
diff --git a/arch/powerpc/platforms/86xx/mpc8610_hpcd.c b/arch/powerpc/platforms/86xx/mpc8610_hpcd.c
index 6390895e5e92..c6d2f48f8f3d 100644
--- a/arch/powerpc/platforms/86xx/mpc8610_hpcd.c
+++ b/arch/powerpc/platforms/86xx/mpc8610_hpcd.c
@@ -124,7 +124,7 @@ static void __devinit quirk_uli5229(struct pci_dev *dev)
124static void __devinit final_uli5288(struct pci_dev *dev) 124static void __devinit final_uli5288(struct pci_dev *dev)
125{ 125{
126 struct pci_controller *hose = pci_bus_to_host(dev->bus); 126 struct pci_controller *hose = pci_bus_to_host(dev->bus);
127 struct device_node *hosenode = hose ? hose->arch_data : NULL; 127 struct device_node *hosenode = hose ? hose->dn : NULL;
128 struct of_irq oirq; 128 struct of_irq oirq;
129 int virq, pin = 2; 129 int virq, pin = 2;
130 u32 laddr[3]; 130 u32 laddr[3];
diff --git a/arch/powerpc/platforms/86xx/mpc86xx_hpcn.c b/arch/powerpc/platforms/86xx/mpc86xx_hpcn.c
index 32a531aebcb7..14f4e527e7ac 100644
--- a/arch/powerpc/platforms/86xx/mpc86xx_hpcn.c
+++ b/arch/powerpc/platforms/86xx/mpc86xx_hpcn.c
@@ -116,7 +116,7 @@ static int mpc86xx_exclude_device(struct pci_controller *hose,
116 struct device_node* node; 116 struct device_node* node;
117 struct resource rsrc; 117 struct resource rsrc;
118 118
119 node = (struct device_node *)hose->arch_data; 119 node = hose->dn;
120 of_address_to_resource(node, 0, &rsrc); 120 of_address_to_resource(node, 0, &rsrc);
121 121
122 if ((rsrc.start & 0xfffff) == 0x8000) { 122 if ((rsrc.start & 0xfffff) == 0x8000) {
diff --git a/arch/powerpc/platforms/cell/io-workarounds.c b/arch/powerpc/platforms/cell/io-workarounds.c
index 9d7c2ef940a8..b86076e3c09e 100644
--- a/arch/powerpc/platforms/cell/io-workarounds.c
+++ b/arch/powerpc/platforms/cell/io-workarounds.c
@@ -238,7 +238,7 @@ static void __init spider_pci_setup_chip(struct spider_pci_bus *bus)
238static void __init spider_pci_add_one(struct pci_controller *phb) 238static void __init spider_pci_add_one(struct pci_controller *phb)
239{ 239{
240 struct spider_pci_bus *bus = &spider_pci_busses[spider_pci_count]; 240 struct spider_pci_bus *bus = &spider_pci_busses[spider_pci_count];
241 struct device_node *np = phb->arch_data; 241 struct device_node *np = phb->dn;
242 struct resource rsrc; 242 struct resource rsrc;
243 void __iomem *regs; 243 void __iomem *regs;
244 244
@@ -317,7 +317,7 @@ static int __init spider_pci_workaround_init(void)
317 * update this code to cope with dynamically added busses 317 * update this code to cope with dynamically added busses
318 */ 318 */
319 list_for_each_entry(phb, &hose_list, list_node) { 319 list_for_each_entry(phb, &hose_list, list_node) {
320 struct device_node *np = phb->arch_data; 320 struct device_node *np = phb->dn;
321 const char *model = of_get_property(np, "model", NULL); 321 const char *model = of_get_property(np, "model", NULL);
322 322
323 /* If no model property or name isn't exactly "pci", skip */ 323 /* If no model property or name isn't exactly "pci", skip */
diff --git a/arch/powerpc/platforms/celleb/io-workarounds.c b/arch/powerpc/platforms/celleb/io-workarounds.c
index 32b9cecfda15..b939c0e98af8 100644
--- a/arch/powerpc/platforms/celleb/io-workarounds.c
+++ b/arch/powerpc/platforms/celleb/io-workarounds.c
@@ -222,7 +222,7 @@ void __init celleb_pci_add_one(struct pci_controller *phb,
222 void (*dummy_read)(struct pci_controller *)) 222 void (*dummy_read)(struct pci_controller *))
223{ 223{
224 struct celleb_pci_bus *bus = &celleb_pci_busses[celleb_pci_count]; 224 struct celleb_pci_bus *bus = &celleb_pci_busses[celleb_pci_count];
225 struct device_node *np = phb->arch_data; 225 struct device_node *np = phb->dn;
226 226
227 if (celleb_pci_count >= MAX_CELLEB_PCI_BUS) { 227 if (celleb_pci_count >= MAX_CELLEB_PCI_BUS) {
228 printk(KERN_ERR "Too many pci bridges, workarounds" 228 printk(KERN_ERR "Too many pci bridges, workarounds"
@@ -262,7 +262,7 @@ int __init celleb_pci_workaround_init(void)
262 } 262 }
263 263
264 list_for_each_entry(phb, &hose_list, list_node) { 264 list_for_each_entry(phb, &hose_list, list_node) {
265 node = phb->arch_data; 265 node = phb->dn;
266 match = of_match_node(celleb_pci_workaround_match, node); 266 match = of_match_node(celleb_pci_workaround_match, node);
267 267
268 if (match) { 268 if (match) {
diff --git a/arch/powerpc/platforms/celleb/pci.c b/arch/powerpc/platforms/celleb/pci.c
index 13ec4a606b96..5d399e038c23 100644
--- a/arch/powerpc/platforms/celleb/pci.c
+++ b/arch/powerpc/platforms/celleb/pci.c
@@ -480,7 +480,7 @@ static struct of_device_id celleb_phb_match[] __initdata = {
480 480
481int __init celleb_setup_phb(struct pci_controller *phb) 481int __init celleb_setup_phb(struct pci_controller *phb)
482{ 482{
483 struct device_node *dev = phb->arch_data; 483 struct device_node *dev = phb->dn;
484 const struct of_device_id *match; 484 const struct of_device_id *match;
485 int (*setup_func)(struct device_node *, struct pci_controller *); 485 int (*setup_func)(struct device_node *, struct pci_controller *);
486 486
diff --git a/arch/powerpc/platforms/maple/pci.c b/arch/powerpc/platforms/maple/pci.c
index 771ed0cf29a5..3ffa0ac170ee 100644
--- a/arch/powerpc/platforms/maple/pci.c
+++ b/arch/powerpc/platforms/maple/pci.c
@@ -558,7 +558,7 @@ void __init maple_pci_init(void)
558 * safe assumptions hopefully. 558 * safe assumptions hopefully.
559 */ 559 */
560 if (u3_agp) { 560 if (u3_agp) {
561 struct device_node *np = u3_agp->arch_data; 561 struct device_node *np = u3_agp->dn;
562 PCI_DN(np)->busno = 0xf0; 562 PCI_DN(np)->busno = 0xf0;
563 for (np = np->child; np; np = np->sibling) 563 for (np = np->child; np; np = np->sibling)
564 PCI_DN(np)->busno = 0xf0; 564 PCI_DN(np)->busno = 0xf0;
diff --git a/arch/powerpc/platforms/powermac/pci.c b/arch/powerpc/platforms/powermac/pci.c
index ec49099830d5..778c249d8815 100644
--- a/arch/powerpc/platforms/powermac/pci.c
+++ b/arch/powerpc/platforms/powermac/pci.c
@@ -319,7 +319,7 @@ static int u3_ht_skip_device(struct pci_controller *hose,
319 if (bus->self) 319 if (bus->self)
320 busdn = pci_device_to_OF_node(bus->self); 320 busdn = pci_device_to_OF_node(bus->self);
321 else 321 else
322 busdn = hose->arch_data; 322 busdn = hose->dn;
323 for (dn = busdn->child; dn; dn = dn->sibling) 323 for (dn = busdn->child; dn; dn = dn->sibling)
324 if (PCI_DN(dn) && PCI_DN(dn)->devfn == devfn) 324 if (PCI_DN(dn) && PCI_DN(dn)->devfn == devfn)
325 break; 325 break;
@@ -778,7 +778,7 @@ static void __init setup_u4_pcie(struct pci_controller* hose)
778 778
779static void __init setup_u3_ht(struct pci_controller* hose) 779static void __init setup_u3_ht(struct pci_controller* hose)
780{ 780{
781 struct device_node *np = (struct device_node *)hose->arch_data; 781 struct device_node *np = hose->dn;
782 struct pci_controller *other = NULL; 782 struct pci_controller *other = NULL;
783 int i, cur; 783 int i, cur;
784 784
@@ -1032,7 +1032,7 @@ void __init pmac_pci_init(void)
1032 * future though 1032 * future though
1033 */ 1033 */
1034 if (u3_agp) { 1034 if (u3_agp) {
1035 struct device_node *np = u3_agp->arch_data; 1035 struct device_node *np = u3_agp->dn;
1036 PCI_DN(np)->busno = 0xf0; 1036 PCI_DN(np)->busno = 0xf0;
1037 for (np = np->child; np; np = np->sibling) 1037 for (np = np->child; np; np = np->sibling)
1038 PCI_DN(np)->busno = 0xf0; 1038 PCI_DN(np)->busno = 0xf0;
diff --git a/arch/powerpc/platforms/pseries/iommu.c b/arch/powerpc/platforms/pseries/iommu.c
index ebb9313b6e91..a65c76308201 100644
--- a/arch/powerpc/platforms/pseries/iommu.c
+++ b/arch/powerpc/platforms/pseries/iommu.c
@@ -251,7 +251,7 @@ static void iommu_table_setparms(struct pci_controller *phb,
251 const unsigned long *basep; 251 const unsigned long *basep;
252 const u32 *sizep; 252 const u32 *sizep;
253 253
254 node = (struct device_node *)phb->arch_data; 254 node = phb->dn;
255 255
256 basep = of_get_property(node, "linux,tce-base", NULL); 256 basep = of_get_property(node, "linux,tce-base", NULL);
257 sizep = of_get_property(node, "linux,tce-size", NULL); 257 sizep = of_get_property(node, "linux,tce-size", NULL);
diff --git a/include/asm-powerpc/pci-bridge.h b/include/asm-powerpc/pci-bridge.h
index f67d262d9ec6..f139f2a44b19 100644
--- a/include/asm-powerpc/pci-bridge.h
+++ b/include/asm-powerpc/pci-bridge.h
@@ -11,6 +11,8 @@
11#include <linux/list.h> 11#include <linux/list.h>
12#include <linux/ioport.h> 12#include <linux/ioport.h>
13 13
14struct device_node;
15
14/* 16/*
15 * Structure of a PCI controller (host bridge) 17 * Structure of a PCI controller (host bridge)
16 */ 18 */
@@ -20,7 +22,7 @@ struct pci_controller {
20#ifdef CONFIG_PPC64 22#ifdef CONFIG_PPC64
21 int node; 23 int node;
22#endif 24#endif
23 void *arch_data; 25 struct device_node *dn;
24 struct list_head list_node; 26 struct list_head list_node;
25 struct device *parent; 27 struct device *parent;
26 28
@@ -132,7 +134,6 @@ extern void __init update_bridge_resource(struct pci_dev *dev,
132 * by device_node->data. 134 * by device_node->data.
133 */ 135 */
134struct iommu_table; 136struct iommu_table;
135struct device_node;
136 137
137struct pci_dn { 138struct pci_dn {
138 int busno; /* pci bus number */ 139 int busno; /* pci bus number */