Skip to content

Commit

Permalink
powerpc/pseries/pci: Remove obsolete SW invalidate
Browse files Browse the repository at this point in the history
That was used by some old IBM internal bringup tools and is
no longer relevant.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
  • Loading branch information
Benjamin Herrenschmidt authored and Michael Ellerman committed Jul 17, 2016
1 parent fb11133 commit b7d6bf4
Showing 1 changed file with 1 addition and 52 deletions.
53 changes: 1 addition & 52 deletions arch/powerpc/platforms/pseries/iommu.c
Original file line number Diff line number Diff line change
Expand Up @@ -120,35 +120,6 @@ static void iommu_pseries_free_group(struct iommu_table_group *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,
long npages, unsigned long uaddr,
enum dma_data_direction direction,
Expand All @@ -173,9 +144,6 @@ static int tce_build_pSeries(struct iommu_table *tbl, long index,
uaddr += TCE_PAGE_SIZE;
tcep++;
}

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

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

while (npages--)
*(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)
Expand Down Expand Up @@ -537,7 +502,7 @@ static void iommu_table_setparms(struct pci_controller *phb,
struct iommu_table *tbl)
{
struct device_node *node;
const unsigned long *basep, *sw_inval;
const unsigned long *basep;
const u32 *sizep;

node = phb->dn;
Expand Down Expand Up @@ -575,22 +540,6 @@ static void iommu_table_setparms(struct pci_controller *phb,
tbl->it_index = 0;
tbl->it_blocksize = 16;
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;
}
}

/*
Expand Down

0 comments on commit b7d6bf4

Please sign in to comment.