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

Commit b7d6bf4f authored by Benjamin Herrenschmidt's avatar Benjamin Herrenschmidt Committed by Michael Ellerman
Browse files

powerpc/pseries/pci: Remove obsolete SW invalidate



That was used by some old IBM internal bringup tools and is
no longer relevant.

Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
parent fb111334
Loading
Loading
Loading
Loading
+1 −52
Original line number Original line Diff line number Diff line
@@ -120,35 +120,6 @@ static void iommu_pseries_free_group(struct iommu_table_group *table_group,
	kfree(table_group);
	kfree(table_group);
}
}


static void tce_invalidate_pSeries_sw(struct iommu_table *tbl,
				      __be64 *startp, __be64 *endp)
{
	u64 __iomem *invalidate = (u64 __iomem *)tbl->it_index;
	unsigned long start, end, inc;

	start = __pa(startp);
	end = __pa(endp);
	inc = L1_CACHE_BYTES; /* invalidate a cacheline of TCEs at a time */

	/* If this is non-zero, change the format.  We shift the
	 * address and or in the magic from the device tree. */
	if (tbl->it_busno) {
		start <<= 12;
		end <<= 12;
		inc <<= 12;
		start |= tbl->it_busno;
		end |= tbl->it_busno;
	}

	end |= inc - 1; /* round up end to be different than start */

	mb(); /* Make sure TCEs in memory are written */
	while (start <= end) {
		out_be64(invalidate, start);
		start += inc;
	}
}

static int tce_build_pSeries(struct iommu_table *tbl, long index,
static int tce_build_pSeries(struct iommu_table *tbl, long index,
			      long npages, unsigned long uaddr,
			      long npages, unsigned long uaddr,
			      enum dma_data_direction direction,
			      enum dma_data_direction direction,
@@ -173,9 +144,6 @@ static int tce_build_pSeries(struct iommu_table *tbl, long index,
		uaddr += TCE_PAGE_SIZE;
		uaddr += TCE_PAGE_SIZE;
		tcep++;
		tcep++;
	}
	}

	if (tbl->it_type & TCE_PCI_SWINV_CREATE)
		tce_invalidate_pSeries_sw(tbl, tces, tcep - 1);
	return 0;
	return 0;
}
}


@@ -188,9 +156,6 @@ static void tce_free_pSeries(struct iommu_table *tbl, long index, long npages)


	while (npages--)
	while (npages--)
		*(tcep++) = 0;
		*(tcep++) = 0;

	if (tbl->it_type & TCE_PCI_SWINV_FREE)
		tce_invalidate_pSeries_sw(tbl, tces, tcep - 1);
}
}


static unsigned long tce_get_pseries(struct iommu_table *tbl, long index)
static unsigned long tce_get_pseries(struct iommu_table *tbl, long index)
@@ -537,7 +502,7 @@ static void iommu_table_setparms(struct pci_controller *phb,
				 struct iommu_table *tbl)
				 struct iommu_table *tbl)
{
{
	struct device_node *node;
	struct device_node *node;
	const unsigned long *basep, *sw_inval;
	const unsigned long *basep;
	const u32 *sizep;
	const u32 *sizep;


	node = phb->dn;
	node = phb->dn;
@@ -575,22 +540,6 @@ static void iommu_table_setparms(struct pci_controller *phb,
	tbl->it_index = 0;
	tbl->it_index = 0;
	tbl->it_blocksize = 16;
	tbl->it_blocksize = 16;
	tbl->it_type = TCE_PCI;
	tbl->it_type = TCE_PCI;

	sw_inval = of_get_property(node, "linux,tce-sw-invalidate-info", NULL);
	if (sw_inval) {
		/*
		 * This property contains information on how to
		 * invalidate the TCE entry.  The first property is
		 * the base MMIO address used to invalidate entries.
		 * The second property tells us the format of the TCE
		 * invalidate (whether it needs to be shifted) and
		 * some magic routing info to add to our invalidate
		 * command.
		 */
		tbl->it_index = (unsigned long) ioremap(sw_inval[0], 8);
		tbl->it_busno = sw_inval[1]; /* overload this with magic */
		tbl->it_type = TCE_PCI_SWINV_CREATE | TCE_PCI_SWINV_FREE;
	}
}
}


/*
/*