diff options
Diffstat (limited to 'arch/powerpc/platforms/cell/iommu.c')
-rw-r--r-- | arch/powerpc/platforms/cell/iommu.c | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/arch/powerpc/platforms/cell/iommu.c b/arch/powerpc/platforms/cell/iommu.c index c7c8720aa39f..21b502398bf3 100644 --- a/arch/powerpc/platforms/cell/iommu.c +++ b/arch/powerpc/platforms/cell/iommu.c | |||
@@ -39,6 +39,7 @@ | |||
39 | #include <asm/firmware.h> | 39 | #include <asm/firmware.h> |
40 | #include <asm/cell-regs.h> | 40 | #include <asm/cell-regs.h> |
41 | 41 | ||
42 | #include "cell.h" | ||
42 | #include "interrupt.h" | 43 | #include "interrupt.h" |
43 | 44 | ||
44 | /* Define CELL_IOMMU_REAL_UNMAP to actually unmap non-used pages | 45 | /* Define CELL_IOMMU_REAL_UNMAP to actually unmap non-used pages |
@@ -197,7 +198,7 @@ static int tce_build_cell(struct iommu_table *tbl, long index, long npages, | |||
197 | 198 | ||
198 | io_pte = (unsigned long *)tbl->it_base + (index - tbl->it_offset); | 199 | io_pte = (unsigned long *)tbl->it_base + (index - tbl->it_offset); |
199 | 200 | ||
200 | for (i = 0; i < npages; i++, uaddr += tbl->it_page_shift) | 201 | for (i = 0; i < npages; i++, uaddr += (1 << tbl->it_page_shift)) |
201 | io_pte[i] = base_pte | (__pa(uaddr) & CBE_IOPTE_RPN_Mask); | 202 | io_pte[i] = base_pte | (__pa(uaddr) & CBE_IOPTE_RPN_Mask); |
202 | 203 | ||
203 | mb(); | 204 | mb(); |
@@ -857,7 +858,7 @@ static int __init cell_iommu_init_disabled(void) | |||
857 | cell_dma_direct_offset += base; | 858 | cell_dma_direct_offset += base; |
858 | 859 | ||
859 | if (cell_dma_direct_offset != 0) | 860 | if (cell_dma_direct_offset != 0) |
860 | ppc_md.pci_dma_dev_setup = cell_pci_dma_dev_setup; | 861 | cell_pci_controller_ops.dma_dev_setup = cell_pci_dma_dev_setup; |
861 | 862 | ||
862 | printk("iommu: disabled, direct DMA offset is 0x%lx\n", | 863 | printk("iommu: disabled, direct DMA offset is 0x%lx\n", |
863 | cell_dma_direct_offset); | 864 | cell_dma_direct_offset); |
@@ -1197,8 +1198,8 @@ static int __init cell_iommu_init(void) | |||
1197 | if (cell_iommu_init_disabled() == 0) | 1198 | if (cell_iommu_init_disabled() == 0) |
1198 | goto bail; | 1199 | goto bail; |
1199 | 1200 | ||
1200 | /* Setup various ppc_md. callbacks */ | 1201 | /* Setup various callbacks */ |
1201 | ppc_md.pci_dma_dev_setup = cell_pci_dma_dev_setup; | 1202 | cell_pci_controller_ops.dma_dev_setup = cell_pci_dma_dev_setup; |
1202 | ppc_md.dma_get_required_mask = cell_dma_get_required_mask; | 1203 | ppc_md.dma_get_required_mask = cell_dma_get_required_mask; |
1203 | ppc_md.tce_build = tce_build_cell; | 1204 | ppc_md.tce_build = tce_build_cell; |
1204 | ppc_md.tce_free = tce_free_cell; | 1205 | ppc_md.tce_free = tce_free_cell; |
@@ -1234,5 +1235,3 @@ static int __init cell_iommu_init(void) | |||
1234 | return 0; | 1235 | return 0; |
1235 | } | 1236 | } |
1236 | machine_arch_initcall(cell, cell_iommu_init); | 1237 | machine_arch_initcall(cell, cell_iommu_init); |
1237 | machine_arch_initcall(celleb_native, cell_iommu_init); | ||
1238 | |||