Loading...
1/* SPDX-License-Identifier: GPL-2.0 */
2#ifndef ASM_POWERPC_DMA_DIRECT_H
3#define ASM_POWERPC_DMA_DIRECT_H 1
4
5static inline dma_addr_t phys_to_dma(struct device *dev, phys_addr_t paddr)
6{
7 return paddr + dev->archdata.dma_offset;
8}
9
10static inline phys_addr_t dma_to_phys(struct device *dev, dma_addr_t daddr)
11{
12 return daddr - dev->archdata.dma_offset;
13}
14#endif /* ASM_POWERPC_DMA_DIRECT_H */
1/* SPDX-License-Identifier: GPL-2.0 */
2#ifndef ASM_POWERPC_DMA_DIRECT_H
3#define ASM_POWERPC_DMA_DIRECT_H 1
4
5static inline bool dma_capable(struct device *dev, dma_addr_t addr, size_t size)
6{
7 if (!dev->dma_mask)
8 return false;
9
10 return addr + size - 1 <=
11 min_not_zero(*dev->dma_mask, dev->bus_dma_mask);
12}
13
14static inline dma_addr_t __phys_to_dma(struct device *dev, phys_addr_t paddr)
15{
16 if (!dev)
17 return paddr + PCI_DRAM_OFFSET;
18 return paddr + dev->archdata.dma_offset;
19}
20
21static inline phys_addr_t __dma_to_phys(struct device *dev, dma_addr_t daddr)
22{
23 if (!dev)
24 return daddr - PCI_DRAM_OFFSET;
25 return daddr - dev->archdata.dma_offset;
26}
27#endif /* ASM_POWERPC_DMA_DIRECT_H */