Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

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

[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
Loading
Loading
Loading
Loading
+15 −4
Original line number Diff line number Diff line
@@ -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)
{
	struct linux_prom_pci_ranges *pbm_ranges;
	int i, saw_mem, saw_io;
	int num_pbm_ranges;

	saw_mem = saw_io = 0;
	for (i = 0; i < pbm->num_pbm_ranges; i++) {
		struct linux_prom_pci_ranges *pr = &pbm->pbm_ranges[i];
	pbm_ranges = of_get_property(pbm->prom_node, "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;
		u32 parent_phys_hi, parent_phys_lo;
		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;
		a = (((unsigned long)pr->parent_phys_hi << 32UL) |
		     ((unsigned long)pr->parent_phys_lo  <<  0UL));
		a = (((unsigned long)parent_phys_hi << 32UL) |
		     ((unsigned long)parent_phys_lo  <<  0UL));

		switch (type) {
		case 0:
+0 −10
Original line number Diff line number Diff line
@@ -1136,7 +1136,6 @@ static void psycho_pbm_init(struct pci_controller_info *p,
	unsigned int *busrange;
	struct property *prop;
	struct pci_pbm_info *pbm;
	int len;

	if (is_pbm_a) {
		pbm = &p->pbm_A;
@@ -1166,15 +1165,6 @@ static void psycho_pbm_init(struct pci_controller_info *p,
	       pbm->name,
	       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);
	busrange = prop->value;
	pbm->pci_first_busno = busrange[0];
+0 −5
Original line number Diff line number Diff line
@@ -1542,7 +1542,6 @@ static void schizo_pbm_init(struct pci_controller_info *p,
	const char *chipset_name;
	u32 *ino_bitmap;
	int is_pbm_a;
	int len;

	switch (chip_type) {
	case PBM_CHIP_TYPE_TOMATILLO:
@@ -1601,10 +1600,6 @@ static void schizo_pbm_init(struct pci_controller_info *p,

	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);

	ino_bitmap = of_get_property(dp, "ino-bitmap", NULL);
+0 −13
Original line number Diff line number Diff line
@@ -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)
{
	struct pci_pbm_info *pbm;
	struct property *prop;
	int len, i;

	if (devhandle & 0x40)
		pbm = &p->pbm_B;
@@ -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);

	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_sun4v_get_bus_range(pbm);
+0 −2
Original line number Diff line number Diff line
@@ -160,8 +160,6 @@ struct pci_pbm_info {

	/* OBP specific information. */
	struct device_node		*prom_node;
	struct linux_prom_pci_ranges	*pbm_ranges;
	int				num_pbm_ranges;
	u64				ino_bitmap;

	/* PBM I/O and Memory space resources. */