These changes are the raw update to linux-4.4.6-rt14. Kernel sources
[kvmfornfv.git] / kernel / arch / powerpc / include / asm / device.h
index 9f1371b..406c2b1 100644 (file)
@@ -10,6 +10,7 @@ struct dma_map_ops;
 struct device_node;
 #ifdef CONFIG_PPC64
 struct pci_dn;
+struct iommu_table;
 #endif
 
 /*
@@ -23,13 +24,15 @@ struct dev_archdata {
        struct dma_map_ops      *dma_ops;
 
        /*
-        * When an iommu is in use, dma_data is used as a ptr to the base of the
-        * iommu_table.  Otherwise, it is a simple numerical offset.
+        * 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.
         */
-       union {
-               dma_addr_t      dma_offset;
-               void            *iommu_table_base;
-       } dma_data;
+       dma_addr_t              dma_offset;
+
+#ifdef CONFIG_PPC64
+       struct iommu_table      *iommu_table_base;
+#endif
 
 #ifdef CONFIG_IOMMU_API
        void                    *iommu_domain;
@@ -46,6 +49,9 @@ struct dev_archdata {
 #ifdef CONFIG_FAIL_IOMMU
        int fail_iommu;
 #endif
+#ifdef CONFIG_CXL_BASE
+       struct cxl_context      *cxl_ctx;
+#endif
 };
 
 struct pdev_archdata {