powerpc/pseries/pci: Remove obsolete SW invalidate
authorBenjamin Herrenschmidt <benh@kernel.crashing.org>
Fri, 8 Jul 2016 06:37:10 +0000 (16:37 +1000)
committerMichael Ellerman <mpe@ellerman.id.au>
Sun, 17 Jul 2016 06:42:45 +0000 (16:42 +1000)
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>
arch/powerpc/platforms/pseries/iommu.c

index 3e8865b187de22187a39e1bc66b662e464009f14..770a753b52c9399f2f246e05cc1737325ea6131a 100644 (file)
@@ -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,
@@ -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;
 }
 
@@ -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)
@@ -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;
@@ -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;
-       }
 }
 
 /*