linux 2.6.16.38 w/ vs2.0.3-rc1
[linux-2.6.git] / arch / powerpc / platforms / cell / iommu.c
index a49ceb7..46e7cb9 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 = map_start;
+       for (real_address = 0, io_address = 0;
             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, ioid, IOPT_PROT_RW));
+                       get_iopt_entry(real_address-map_start, ioid, IOPT_PROT_RW));
        }
 }
 
@@ -344,8 +344,8 @@ static int cell_map_iommu_hardcoded(int num_nodes)
 
        /* node 0 */
        iommu = &cell_iommus[0];
-       iommu->mapped_base = ioremap(0x20000511000, 0x1000);
-       iommu->mapped_mmio_base = ioremap(0x20000510000, 0x1000);
+       iommu->mapped_base = __ioremap(0x20000511000, 0x1000, _PAGE_NO_CACHE);
+       iommu->mapped_mmio_base = __ioremap(0x20000510000, 0x1000, _PAGE_NO_CACHE);
 
        enable_mapping(iommu->mapped_base, iommu->mapped_mmio_base);
 
@@ -357,8 +357,8 @@ static int cell_map_iommu_hardcoded(int num_nodes)
 
        /* node 1 */
        iommu = &cell_iommus[1];
-       iommu->mapped_base = ioremap(0x30000511000, 0x1000);
-       iommu->mapped_mmio_base = ioremap(0x30000510000, 0x1000);
+       iommu->mapped_base = __ioremap(0x30000511000, 0x1000, _PAGE_NO_CACHE);
+       iommu->mapped_mmio_base = __ioremap(0x30000510000, 0x1000, _PAGE_NO_CACHE);
 
        enable_mapping(iommu->mapped_base, iommu->mapped_mmio_base);
 
@@ -407,8 +407,8 @@ static int cell_map_iommu(void)
                iommu->base = *base;
                iommu->mmio_base = *mmio_base;
 
-               iommu->mapped_base = ioremap(*base, 0x1000);
-               iommu->mapped_mmio_base = ioremap(*mmio_base, 0x1000);
+               iommu->mapped_base = __ioremap(*base, 0x1000, _PAGE_NO_CACHE);
+               iommu->mapped_mmio_base = __ioremap(*mmio_base, 0x1000, _PAGE_NO_CACHE);
 
                enable_mapping(iommu->mapped_base,
                               iommu->mapped_mmio_base);