[PATCH] powerpc: fix cell iommu setup
authorArnd Bergmann <abergman@de.ibm.com>
Wed, 22 Mar 2006 23:00:04 +0000 (00:00 +0100)
committerPaul Mackerras <paulus@samba.org>
Mon, 27 Mar 2006 03:48:14 +0000 (14:48 +1100)
A small bug crept in the iommu driver when we made it more
generic. This patch is needed for boards that have a dma
window that does not start at bus address zero.

Signed-off-by: Arnd Bergmann <arnd.bergmann@de.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
arch/powerpc/platforms/cell/iommu.c

index 46e7cb9c3e648ec0fc7cde3b19f30406728b8b75..c8a98be8b6a12a375a7bbe6bc68673b1ef5fe45d 100644 (file)
@@ -289,7 +289,7 @@ static void cell_do_map_iommu(struct cell_iommu *iommu,
        ioc_base = iommu->mapped_base;
        ioc_mmio_base = iommu->mapped_mmio_base;
 
-       for (real_address = 0, io_address = 0;
+       for (real_address = 0, io_address = map_start;
             io_address <= map_start + map_size;
             real_address += io_page_size, io_address += io_page_size) {
                ioste = get_iost_entry(fake_iopt, io_address, io_page_size);
@@ -302,7 +302,7 @@ static void cell_do_map_iommu(struct cell_iommu *iommu,
                set_iopt_cache(ioc_mmio_base,
                        get_ioc_hash_1way(ioste, io_address),
                        get_ioc_tag(ioste, io_address),
-                       get_iopt_entry(real_address-map_start, ioid, IOPT_PROT_RW));
+                       get_iopt_entry(real_address, ioid, IOPT_PROT_RW));
        }
 }