diff options
Diffstat (limited to 'arch/sparc/kernel/pci_common.c')
| -rw-r--r-- | arch/sparc/kernel/pci_common.c | 20 |
1 files changed, 13 insertions, 7 deletions
diff --git a/arch/sparc/kernel/pci_common.c b/arch/sparc/kernel/pci_common.c index b775658a927d..6c7a33af3ba6 100644 --- a/arch/sparc/kernel/pci_common.c +++ b/arch/sparc/kernel/pci_common.c | |||
| @@ -314,12 +314,12 @@ struct pci_ops sun4v_pci_ops = { | |||
| 314 | 314 | ||
| 315 | void pci_get_pbm_props(struct pci_pbm_info *pbm) | 315 | void pci_get_pbm_props(struct pci_pbm_info *pbm) |
| 316 | { | 316 | { |
| 317 | const u32 *val = of_get_property(pbm->op->node, "bus-range", NULL); | 317 | const u32 *val = of_get_property(pbm->op->dev.of_node, "bus-range", NULL); |
| 318 | 318 | ||
| 319 | pbm->pci_first_busno = val[0]; | 319 | pbm->pci_first_busno = val[0]; |
| 320 | pbm->pci_last_busno = val[1]; | 320 | pbm->pci_last_busno = val[1]; |
| 321 | 321 | ||
| 322 | val = of_get_property(pbm->op->node, "ino-bitmap", NULL); | 322 | val = of_get_property(pbm->op->dev.of_node, "ino-bitmap", NULL); |
| 323 | if (val) { | 323 | if (val) { |
| 324 | pbm->ino_bitmap = (((u64)val[1] << 32UL) | | 324 | pbm->ino_bitmap = (((u64)val[1] << 32UL) | |
| 325 | ((u64)val[0] << 0UL)); | 325 | ((u64)val[0] << 0UL)); |
| @@ -365,20 +365,26 @@ static void pci_register_legacy_regions(struct resource *io_res, | |||
| 365 | 365 | ||
| 366 | static void pci_register_iommu_region(struct pci_pbm_info *pbm) | 366 | static void pci_register_iommu_region(struct pci_pbm_info *pbm) |
| 367 | { | 367 | { |
| 368 | const u32 *vdma = of_get_property(pbm->op->node, "virtual-dma", NULL); | 368 | const u32 *vdma = of_get_property(pbm->op->dev.of_node, "virtual-dma", |
| 369 | NULL); | ||
| 369 | 370 | ||
| 370 | if (vdma) { | 371 | if (vdma) { |
| 371 | struct resource *rp = kzalloc(sizeof(*rp), GFP_KERNEL); | 372 | struct resource *rp = kzalloc(sizeof(*rp), GFP_KERNEL); |
| 372 | 373 | ||
| 373 | if (!rp) { | 374 | if (!rp) { |
| 374 | prom_printf("Cannot allocate IOMMU resource.\n"); | 375 | pr_info("%s: Cannot allocate IOMMU resource.\n", |
| 375 | prom_halt(); | 376 | pbm->name); |
| 377 | return; | ||
| 376 | } | 378 | } |
| 377 | rp->name = "IOMMU"; | 379 | rp->name = "IOMMU"; |
| 378 | rp->start = pbm->mem_space.start + (unsigned long) vdma[0]; | 380 | rp->start = pbm->mem_space.start + (unsigned long) vdma[0]; |
| 379 | rp->end = rp->start + (unsigned long) vdma[1] - 1UL; | 381 | rp->end = rp->start + (unsigned long) vdma[1] - 1UL; |
| 380 | rp->flags = IORESOURCE_BUSY; | 382 | rp->flags = IORESOURCE_BUSY; |
| 381 | request_resource(&pbm->mem_space, rp); | 383 | if (request_resource(&pbm->mem_space, rp)) { |
| 384 | pr_info("%s: Unable to request IOMMU resource.\n", | ||
| 385 | pbm->name); | ||
| 386 | kfree(rp); | ||
| 387 | } | ||
| 382 | } | 388 | } |
| 383 | } | 389 | } |
| 384 | 390 | ||
| @@ -389,7 +395,7 @@ void pci_determine_mem_io_space(struct pci_pbm_info *pbm) | |||
| 389 | int num_pbm_ranges; | 395 | int num_pbm_ranges; |
| 390 | 396 | ||
| 391 | saw_mem = saw_io = 0; | 397 | saw_mem = saw_io = 0; |
| 392 | pbm_ranges = of_get_property(pbm->op->node, "ranges", &i); | 398 | pbm_ranges = of_get_property(pbm->op->dev.of_node, "ranges", &i); |
| 393 | if (!pbm_ranges) { | 399 | if (!pbm_ranges) { |
| 394 | prom_printf("PCI: Fatal error, missing PBM ranges property " | 400 | prom_printf("PCI: Fatal error, missing PBM ranges property " |
| 395 | " for %s\n", | 401 | " for %s\n", |
