[POWERPC] pasemi: Another IOMMU bugfix for 64K PAGE_SIZE
authorOlof Johansson <olof@lixom.net>
Fri, 17 Aug 2007 03:57:39 +0000 (13:57 +1000)
committerPaul Mackerras <paulus@samba.org>
Sat, 25 Aug 2007 06:58:26 +0000 (16:58 +1000)
More fallout from the switch from PAGE_SIZE based IOMMU to the native page
size for the driver. By pure luck it happened to work most of the time, since
we end up invalidating the wrong entries in the TLB.

Signed-off-by: Olof Johansson <olof@lixom.net>
Signed-off-by: Paul Mackerras <paulus@samba.org>
arch/powerpc/platforms/pasemi/iommu.c

index f33b21b9f5d4338d9ad9c01ba610a90250b7e132..9014d55c717bec00e97bac2b38fcceb88f3aeb27 100644 (file)
@@ -93,7 +93,7 @@ static void iobmap_build(struct iommu_table *tbl, long index,
 
        pr_debug("iobmap: build at: %lx, %lx, addr: %lx\n", index, npages, uaddr);
 
-       bus_addr = (tbl->it_offset + index) << PAGE_SHIFT;
+       bus_addr = (tbl->it_offset + index) << IOBMAP_PAGE_SHIFT;
 
        ip = ((u32 *)tbl->it_base) + index;
 
@@ -118,7 +118,7 @@ static void iobmap_free(struct iommu_table *tbl, long index,
 
        pr_debug("iobmap: free at: %lx, %lx\n", index, npages);
 
-       bus_addr = (tbl->it_offset + index) << PAGE_SHIFT;
+       bus_addr = (tbl->it_offset + index) << IOBMAP_PAGE_SHIFT;
 
        ip = ((u32 *)tbl->it_base) + index;
 
@@ -137,7 +137,7 @@ static void iommu_table_iobmap_setup(void)
        iommu_table_iobmap.it_busno = 0;
        iommu_table_iobmap.it_offset = 0;
        /* it_size is in number of entries */
-       iommu_table_iobmap.it_size = 0x80000000 >> PAGE_SHIFT;
+       iommu_table_iobmap.it_size = 0x80000000 >> IOBMAP_PAGE_SHIFT;
 
        /* Initialize the common IOMMU code */
        iommu_table_iobmap.it_base = (unsigned long)iob_l2_base;