/* * Arch specific extensions to struct device * * This file is released under the GPLv2 */ #ifndef _ASM_POWERPC_DEVICE_H #define _ASM_POWERPC_DEVICE_H struct dma_map_ops; struct device_node; #ifdef [31mCONFIG_PPC64[0m struct pci_dn; struct iommu_table; #endif /* * Arch extensions to struct device. * * When adding fields, consider macio_add_one_device in * drivers/macintosh/macio_asic.c */ struct dev_archdata { /* DMA operations on that device */ struct dma_map_ops *dma_ops; /* * These two used to be a union. However, with the hybrid ops we need * both so here we store both a DMA offset for direct mappings and * an iommu_table for remapped DMA. */ dma_addr_t dma_offset; #ifdef [31mCONFIG_PPC64[0m struct iommu_table *iommu_table_base; #endif #ifdef [31mCONFIG_IOMMU_API[0m void *iommu_domain; #endif #ifdef [31mCONFIG_SWIOTLB[0m dma_addr_t max_direct_dma_addr; #endif #ifdef [31mCONFIG_PPC64[0m struct pci_dn *pci_data; #endif #ifdef [31mCONFIG_EEH[0m struct eeh_dev *edev; #endif #ifdef [31mCONFIG_FAIL_IOMMU[0m int fail_iommu; #endif #ifdef [31mCONFIG_CXL_BASE[0m struct cxl_context *cxl_ctx; #endif }; struct pdev_archdata { u64 dma_mask; }; #define ARCH_HAS_DMA_GET_REQUIRED_MASK #endif /* _ASM_POWERPC_DEVICE_H */ |