summaryrefslogtreecommitdiff
path: root/arch/powerpc/include/asm/dma-mapping.h
diff options
context:
space:
mode:
authorBecky Bruce <beckyb@kernel.crashing.org>2009-09-21 08:26:35 +0000
committerBenjamin Herrenschmidt <benh@kernel.crashing.org>2009-09-24 15:31:43 +1000
commit738ef42e32fe95553a424c04016b936c9f6c9afb (patch)
treef45f21a92eacbb22bd3223c5ac725473c6ec1d72 /arch/powerpc/include/asm/dma-mapping.h
parent1cebd7a0f62804ca24f7b7b35e8105000b9e879a (diff)
powerpc: Change archdata dma_data to a union
Sometimes this is used to hold a simple offset, and sometimes it is used to hold a pointer. This patch changes it to a union containing void * and dma_addr_t. get/set accessors are also provided, because it was getting a bit ugly to get to the actual data. Signed-off-by: Becky Bruce <beckyb@kernel.crashing.org> Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Diffstat (limited to 'arch/powerpc/include/asm/dma-mapping.h')
-rw-r--r--arch/powerpc/include/asm/dma-mapping.h10
1 files changed, 8 insertions, 2 deletions
diff --git a/arch/powerpc/include/asm/dma-mapping.h b/arch/powerpc/include/asm/dma-mapping.h
index 34b919fe8cda..e281daebddca 100644
--- a/arch/powerpc/include/asm/dma-mapping.h
+++ b/arch/powerpc/include/asm/dma-mapping.h
@@ -97,14 +97,20 @@ static inline void set_dma_ops(struct device *dev, struct dma_map_ops *ops)
* swiotlb use this function, but it is typically not used by implementations
* with an iommu.
*/
-static inline unsigned long get_dma_offset(struct device *dev)
+static inline dma_addr_t get_dma_offset(struct device *dev)
{
if (dev)
- return (unsigned long)dev->archdata.dma_data;
+ return dev->archdata.dma_data.dma_offset;
return PCI_DRAM_OFFSET;
}
+static inline void set_dma_offset(struct device *dev, dma_addr_t off)
+{
+ if (dev)
+ dev->archdata.dma_data.dma_offset = off;
+}
+
/* this will be removed soon */
#define flush_write_buffers()