Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 294764
b: refs/heads/master
c: 6c5705f
h: refs/heads/master
v: v3
  • Loading branch information
Bjorn Helgaas committed Feb 24, 2012
1 parent 46ca401 commit d49ad75
Show file tree
Hide file tree
Showing 3 changed files with 7 additions and 82 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: 39c2462e163448c7df466c7262109ec6a24d5f88
refs/heads/master: 6c5705fec63d83eeb165fe61e34adc92ecc2ce75
8 changes: 1 addition & 7 deletions trunk/arch/powerpc/include/asm/pci.h
Original file line number Diff line number Diff line change
Expand Up @@ -154,13 +154,7 @@ extern int pci_mmap_legacy_page_range(struct pci_bus *bus,

#endif /* CONFIG_PPC64 */

extern void pcibios_resource_to_bus(struct pci_dev *dev,
struct pci_bus_region *region,
struct resource *res);

extern void pcibios_bus_to_resource(struct pci_dev *dev,
struct resource *res,
struct pci_bus_region *region);
#define ARCH_HAS_GENERIC_PCI_OFFSETS

extern void pcibios_claim_one_bus(struct pci_bus *b);

Expand Down
79 changes: 5 additions & 74 deletions trunk/arch/powerpc/kernel/pci-common.c
Original file line number Diff line number Diff line change
Expand Up @@ -846,60 +846,6 @@ int pci_proc_domain(struct pci_bus *bus)
return 1;
}

void pcibios_resource_to_bus(struct pci_dev *dev, struct pci_bus_region *region,
struct resource *res)
{
resource_size_t offset = 0, mask = (resource_size_t)-1;
struct pci_controller *hose = pci_bus_to_host(dev->bus);

if (!hose)
return;
if (res->flags & IORESOURCE_IO) {
offset = (unsigned long)hose->io_base_virt - _IO_BASE;
mask = 0xffffffffu;
} else if (res->flags & IORESOURCE_MEM)
offset = hose->pci_mem_offset;

region->start = (res->start - offset) & mask;
region->end = (res->end - offset) & mask;
}
EXPORT_SYMBOL(pcibios_resource_to_bus);

void pcibios_bus_to_resource(struct pci_dev *dev, struct resource *res,
struct pci_bus_region *region)
{
resource_size_t offset = 0, mask = (resource_size_t)-1;
struct pci_controller *hose = pci_bus_to_host(dev->bus);

if (!hose)
return;
if (res->flags & IORESOURCE_IO) {
offset = (unsigned long)hose->io_base_virt - _IO_BASE;
mask = 0xffffffffu;
} else if (res->flags & IORESOURCE_MEM)
offset = hose->pci_mem_offset;
res->start = (region->start + offset) & mask;
res->end = (region->end + offset) & mask;
}
EXPORT_SYMBOL(pcibios_bus_to_resource);

/* Fixup a bus resource into a linux resource */
static void __devinit fixup_resource(struct resource *res, struct pci_dev *dev)
{
struct pci_controller *hose = pci_bus_to_host(dev->bus);
resource_size_t offset = 0, mask = (resource_size_t)-1;

if (res->flags & IORESOURCE_IO) {
offset = (unsigned long)hose->io_base_virt - _IO_BASE;
mask = 0xffffffffu;
} else if (res->flags & IORESOURCE_MEM)
offset = hose->pci_mem_offset;

res->start = (res->start + offset) & mask;
res->end = (res->end + offset) & mask;
}


/* This header fixup will do the resource fixup for all devices as they are
* probed, but not for bridge ranges
*/
Expand Down Expand Up @@ -939,18 +885,11 @@ static void __devinit pcibios_fixup_resources(struct pci_dev *dev)
continue;
}

pr_debug("PCI:%s Resource %d %016llx-%016llx [%x] fixup...\n",
pr_debug("PCI:%s Resource %d %016llx-%016llx [%x]\n",
pci_name(dev), i,
(unsigned long long)res->start,\
(unsigned long long)res->end,
(unsigned int)res->flags);

fixup_resource(res, dev);

pr_debug("PCI:%s %016llx-%016llx\n",
pci_name(dev),
(unsigned long long)res->start,
(unsigned long long)res->end);
}

/* Call machine specific resource fixup */
Expand Down Expand Up @@ -1052,27 +991,18 @@ static void __devinit pcibios_fixup_bridge(struct pci_bus *bus)
continue;
}

pr_debug("PCI:%s Bus rsrc %d %016llx-%016llx [%x] fixup...\n",
pr_debug("PCI:%s Bus rsrc %d %016llx-%016llx [%x]\n",
pci_name(dev), i,
(unsigned long long)res->start,\
(unsigned long long)res->end,
(unsigned int)res->flags);

/* Perform fixup */
fixup_resource(res, dev);

/* Try to detect uninitialized P2P bridge resources,
* and clear them out so they get re-assigned later
*/
if (pcibios_uninitialized_bridge_resource(bus, res)) {
res->flags = 0;
pr_debug("PCI:%s (unassigned)\n", pci_name(dev));
} else {

pr_debug("PCI:%s %016llx-%016llx\n",
pci_name(dev),
(unsigned long long)res->start,
(unsigned long long)res->end);
}
}
}
Expand Down Expand Up @@ -1586,7 +1516,8 @@ static void __devinit pcibios_setup_phb_resources(struct pci_controller *hose, s
(unsigned long long)res->start,
(unsigned long long)res->end,
(unsigned long)res->flags);
pci_add_resource(resources, res);
pci_add_resource_offset(resources, res,
(resource_size_t) hose->io_base_virt - _IO_BASE);

/* Hookup PHB Memory resources */
for (i = 0; i < 3; ++i) {
Expand All @@ -1609,7 +1540,7 @@ static void __devinit pcibios_setup_phb_resources(struct pci_controller *hose, s
(unsigned long long)res->start,
(unsigned long long)res->end,
(unsigned long)res->flags);
pci_add_resource(resources, res);
pci_add_resource_offset(resources, res, hose->pci_mem_offset);
}

pr_debug("PCI: PHB MEM offset = %016llx\n",
Expand Down

0 comments on commit d49ad75

Please sign in to comment.