@@ -60,8 +60,7 @@ static void *arc_dma_alloc(struct device *dev, size_t size,
6060 /* This is linear addr (0x8000_0000 based) */
6161 paddr = page_to_phys (page );
6262
63- /* For now bus address is exactly same as paddr */
64- * dma_handle = paddr ;
63+ * dma_handle = plat_phys_to_dma (dev , paddr );
6564
6665 /* This is kernel Virtual address (0x7000_0000 based) */
6766 if (need_kvaddr ) {
@@ -134,7 +133,7 @@ static dma_addr_t arc_dma_map_page(struct device *dev, struct page *page,
134133{
135134 phys_addr_t paddr = page_to_phys (page ) + offset ;
136135 _dma_cache_sync (paddr , size , dir );
137- return ( dma_addr_t ) paddr ;
136+ return plat_phys_to_dma ( dev , paddr ) ;
138137}
139138
140139static int arc_dma_map_sg (struct device * dev , struct scatterlist * sg ,
@@ -153,13 +152,13 @@ static int arc_dma_map_sg(struct device *dev, struct scatterlist *sg,
153152static void arc_dma_sync_single_for_cpu (struct device * dev ,
154153 dma_addr_t dma_handle , size_t size , enum dma_data_direction dir )
155154{
156- _dma_cache_sync (dma_handle , size , DMA_FROM_DEVICE );
155+ _dma_cache_sync (plat_dma_to_phys ( dev , dma_handle ) , size , DMA_FROM_DEVICE );
157156}
158157
159158static void arc_dma_sync_single_for_device (struct device * dev ,
160159 dma_addr_t dma_handle , size_t size , enum dma_data_direction dir )
161160{
162- _dma_cache_sync (dma_handle , size , DMA_TO_DEVICE );
161+ _dma_cache_sync (plat_dma_to_phys ( dev , dma_handle ) , size , DMA_TO_DEVICE );
163162}
164163
165164static void arc_dma_sync_sg_for_cpu (struct device * dev ,
0 commit comments