aboutsummaryrefslogtreecommitdiffstats
path: root/arch/sparc/mm/iommu.c
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2008-08-27 21:40:38 -0400
committerDavid S. Miller <davem@davemloft.net>2008-08-29 05:15:07 -0400
commit4b1c5df2af38b2681b7c1a058534d17c54aaf6cf (patch)
tree3fd9131a506185fa942865cc5e54ecf274a3b5fb /arch/sparc/mm/iommu.c
parentb1387c35bef6da55f6f2c27dfb748c86a4ef7ef9 (diff)
sparc32: Make mmu_map_dma_area and mmu_unmap_dma_area take a device pointer.
This lets us kill this "map it in every IOMMU" crazy code, and also some of the final references to sbus_root. Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'arch/sparc/mm/iommu.c')
-rw-r--r--arch/sparc/mm/iommu.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/arch/sparc/mm/iommu.c b/arch/sparc/mm/iommu.c
index 832d99f33470..2970cea877b1 100644
--- a/arch/sparc/mm/iommu.c
+++ b/arch/sparc/mm/iommu.c
@@ -334,11 +334,11 @@ static void iommu_release_scsi_sgl(struct device *dev, struct scatterlist *sg, i
334} 334}
335 335
336#ifdef CONFIG_SBUS 336#ifdef CONFIG_SBUS
337static int iommu_map_dma_area(dma_addr_t *pba, unsigned long va, 337static int iommu_map_dma_area(struct device *dev, dma_addr_t *pba, unsigned long va,
338 unsigned long addr, int len) 338 unsigned long addr, int len)
339{ 339{
340 struct iommu_struct *iommu = dev->archdata.iommu;
340 unsigned long page, end; 341 unsigned long page, end;
341 struct iommu_struct *iommu = sbus_root->ofdev.dev.archdata.iommu;
342 iopte_t *iopte = iommu->page_table; 342 iopte_t *iopte = iommu->page_table;
343 iopte_t *first; 343 iopte_t *first;
344 int ioptex; 344 int ioptex;
@@ -401,9 +401,9 @@ static int iommu_map_dma_area(dma_addr_t *pba, unsigned long va,
401 return 0; 401 return 0;
402} 402}
403 403
404static void iommu_unmap_dma_area(unsigned long busa, int len) 404static void iommu_unmap_dma_area(struct device *dev, unsigned long busa, int len)
405{ 405{
406 struct iommu_struct *iommu = sbus_root->ofdev.dev.archdata.iommu; 406 struct iommu_struct *iommu = dev->archdata.iommu;
407 iopte_t *iopte = iommu->page_table; 407 iopte_t *iopte = iommu->page_table;
408 unsigned long end; 408 unsigned long end;
409 int ioptex = (busa - iommu->start) >> PAGE_SHIFT; 409 int ioptex = (busa - iommu->start) >> PAGE_SHIFT;