1 /* 2 * Arch specific extensions to struct device 3 * 4 * This file is released under the GPLv2 5 */ 6 #ifndef _ASM_POWERPC_DEVICE_H 7 #define _ASM_POWERPC_DEVICE_H 8 9 struct dma_map_ops; 10 struct device_node; 11 12 /* 13 * Arch extensions to struct device. 14 * 15 * When adding fields, consider macio_add_one_device in 16 * drivers/macintosh/macio_asic.c 17 */ 18 struct dev_archdata { 19 /* DMA operations on that device */ 20 struct dma_map_ops *dma_ops; 21 22 /* 23 * When an iommu is in use, dma_data is used as a ptr to the base of the 24 * iommu_table. Otherwise, it is a simple numerical offset. 25 */ 26 union { 27 dma_addr_t dma_offset; 28 void *iommu_table_base; 29 } dma_data; 30 31 #ifdef CONFIG_SWIOTLB 32 dma_addr_t max_direct_dma_addr; 33 #endif 34 #ifdef CONFIG_EEH 35 struct eeh_dev *edev; 36 #endif 37 }; 38 39 struct pdev_archdata { 40 u64 dma_mask; 41 }; 42 43 #define ARCH_HAS_DMA_GET_REQUIRED_MASK 44 45 #endif /* _ASM_POWERPC_DEVICE_H */ 46