Commit 3487a1f9 authored by David S. Miller's avatar David S. Miller

[SPARC64]: Kill PBM ranges software state.

It is only used in one spot and we can just fetch the
OF property right there.
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 229177c7
...@@ -73,17 +73,28 @@ static void pci_register_iommu_region(struct pci_pbm_info *pbm) ...@@ -73,17 +73,28 @@ static void pci_register_iommu_region(struct pci_pbm_info *pbm)
void pci_determine_mem_io_space(struct pci_pbm_info *pbm) void pci_determine_mem_io_space(struct pci_pbm_info *pbm)
{ {
struct linux_prom_pci_ranges *pbm_ranges;
int i, saw_mem, saw_io; int i, saw_mem, saw_io;
int num_pbm_ranges;
saw_mem = saw_io = 0; saw_mem = saw_io = 0;
for (i = 0; i < pbm->num_pbm_ranges; i++) { pbm_ranges = of_get_property(pbm->prom_node, "ranges", &i);
struct linux_prom_pci_ranges *pr = &pbm->pbm_ranges[i]; num_pbm_ranges = i / sizeof(*pbm_ranges);
for (i = 0; i < num_pbm_ranges; i++) {
struct linux_prom_pci_ranges *pr = &pbm_ranges[i];
unsigned long a; unsigned long a;
u32 parent_phys_hi, parent_phys_lo;
int type; int type;
parent_phys_hi = pr->parent_phys_hi;
parent_phys_lo = pr->parent_phys_lo;
if (tlb_type == hypervisor)
parent_phys_hi &= 0x0fffffff;
type = (pr->child_phys_hi >> 24) & 0x3; type = (pr->child_phys_hi >> 24) & 0x3;
a = (((unsigned long)pr->parent_phys_hi << 32UL) | a = (((unsigned long)parent_phys_hi << 32UL) |
((unsigned long)pr->parent_phys_lo << 0UL)); ((unsigned long)parent_phys_lo << 0UL));
switch (type) { switch (type) {
case 0: case 0:
......
...@@ -1136,7 +1136,6 @@ static void psycho_pbm_init(struct pci_controller_info *p, ...@@ -1136,7 +1136,6 @@ static void psycho_pbm_init(struct pci_controller_info *p,
unsigned int *busrange; unsigned int *busrange;
struct property *prop; struct property *prop;
struct pci_pbm_info *pbm; struct pci_pbm_info *pbm;
int len;
if (is_pbm_a) { if (is_pbm_a) {
pbm = &p->pbm_A; pbm = &p->pbm_A;
...@@ -1166,15 +1165,6 @@ static void psycho_pbm_init(struct pci_controller_info *p, ...@@ -1166,15 +1165,6 @@ static void psycho_pbm_init(struct pci_controller_info *p,
pbm->name, pbm->name,
pbm->chip_version, pbm->chip_revision); pbm->chip_version, pbm->chip_revision);
prop = of_find_property(dp, "ranges", &len);
if (prop) {
pbm->pbm_ranges = prop->value;
pbm->num_pbm_ranges =
(len / sizeof(struct linux_prom_pci_ranges));
} else {
pbm->num_pbm_ranges = 0;
}
prop = of_find_property(dp, "bus-range", NULL); prop = of_find_property(dp, "bus-range", NULL);
busrange = prop->value; busrange = prop->value;
pbm->pci_first_busno = busrange[0]; pbm->pci_first_busno = busrange[0];
......
...@@ -1542,7 +1542,6 @@ static void schizo_pbm_init(struct pci_controller_info *p, ...@@ -1542,7 +1542,6 @@ static void schizo_pbm_init(struct pci_controller_info *p,
const char *chipset_name; const char *chipset_name;
u32 *ino_bitmap; u32 *ino_bitmap;
int is_pbm_a; int is_pbm_a;
int len;
switch (chip_type) { switch (chip_type) {
case PBM_CHIP_TYPE_TOMATILLO: case PBM_CHIP_TYPE_TOMATILLO:
...@@ -1601,10 +1600,6 @@ static void schizo_pbm_init(struct pci_controller_info *p, ...@@ -1601,10 +1600,6 @@ static void schizo_pbm_init(struct pci_controller_info *p,
schizo_pbm_hw_init(pbm); schizo_pbm_hw_init(pbm);
pbm->pbm_ranges = of_get_property(dp, "ranges", &len);
pbm->num_pbm_ranges =
(len / sizeof(struct linux_prom_pci_ranges));
pci_determine_mem_io_space(pbm); pci_determine_mem_io_space(pbm);
ino_bitmap = of_get_property(dp, "ino-bitmap", NULL); ino_bitmap = of_get_property(dp, "ino-bitmap", NULL);
......
...@@ -1301,8 +1301,6 @@ static void pci_sun4v_msi_init(struct pci_pbm_info *pbm) ...@@ -1301,8 +1301,6 @@ static void pci_sun4v_msi_init(struct pci_pbm_info *pbm)
static void pci_sun4v_pbm_init(struct pci_controller_info *p, struct device_node *dp, u32 devhandle) static void pci_sun4v_pbm_init(struct pci_controller_info *p, struct device_node *dp, u32 devhandle)
{ {
struct pci_pbm_info *pbm; struct pci_pbm_info *pbm;
struct property *prop;
int len, i;
if (devhandle & 0x40) if (devhandle & 0x40)
pbm = &p->pbm_B; pbm = &p->pbm_B;
...@@ -1319,17 +1317,6 @@ static void pci_sun4v_pbm_init(struct pci_controller_info *p, struct device_node ...@@ -1319,17 +1317,6 @@ static void pci_sun4v_pbm_init(struct pci_controller_info *p, struct device_node
printk("%s: SUN4V PCI Bus Module\n", pbm->name); printk("%s: SUN4V PCI Bus Module\n", pbm->name);
prop = of_find_property(dp, "ranges", &len);
pbm->pbm_ranges = prop->value;
pbm->num_pbm_ranges =
(len / sizeof(struct linux_prom_pci_ranges));
/* Mask out the top 8 bits of the ranges, leaving the real
* physical address.
*/
for (i = 0; i < pbm->num_pbm_ranges; i++)
pbm->pbm_ranges[i].parent_phys_hi &= 0x0fffffff;
pci_determine_mem_io_space(pbm); pci_determine_mem_io_space(pbm);
pci_sun4v_get_bus_range(pbm); pci_sun4v_get_bus_range(pbm);
......
...@@ -160,8 +160,6 @@ struct pci_pbm_info { ...@@ -160,8 +160,6 @@ struct pci_pbm_info {
/* OBP specific information. */ /* OBP specific information. */
struct device_node *prom_node; struct device_node *prom_node;
struct linux_prom_pci_ranges *pbm_ranges;
int num_pbm_ranges;
u64 ino_bitmap; u64 ino_bitmap;
/* PBM I/O and Memory space resources. */ /* PBM I/O and Memory space resources. */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment