forked from mirrors/linux
		
	 a5bf3cfce8
			
		
	
	
		a5bf3cfce8
		
	
	
	
	
		
			
			This is an implementation that IOMMU drivers can use to obtain reserved memory regions from a device tree node. It uses the reserved-memory DT bindings to find the regions associated with a given device. If these regions are marked accordingly, identity mappings will be created for them in the IOMMU domain that the devices will be attached to. Cc: Frank Rowand <frowand.list@gmail.com> Cc: devicetree@vger.kernel.org Reviewed-by: Rob Herring <robh@kernel.org> Acked-by: Robin Murphy <robin.murphy@arm.com> Signed-off-by: Thierry Reding <treding@nvidia.com> Link: https://lore.kernel.org/r/20230120174251.4004100-4-thierry.reding@gmail.com Signed-off-by: Joerg Roedel <jroedel@suse.de>
		
			
				
	
	
		
			34 lines
		
	
	
	
		
			703 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			34 lines
		
	
	
	
		
			703 B
		
	
	
	
		
			C
		
	
	
	
	
	
| /* SPDX-License-Identifier: GPL-2.0 */
 | |
| #ifndef __OF_IOMMU_H
 | |
| #define __OF_IOMMU_H
 | |
| 
 | |
| struct device;
 | |
| struct device_node;
 | |
| struct iommu_ops;
 | |
| 
 | |
| #ifdef CONFIG_OF_IOMMU
 | |
| 
 | |
| extern const struct iommu_ops *of_iommu_configure(struct device *dev,
 | |
| 					struct device_node *master_np,
 | |
| 					const u32 *id);
 | |
| 
 | |
| extern void of_iommu_get_resv_regions(struct device *dev,
 | |
| 				      struct list_head *list);
 | |
| 
 | |
| #else
 | |
| 
 | |
| static inline const struct iommu_ops *of_iommu_configure(struct device *dev,
 | |
| 					 struct device_node *master_np,
 | |
| 					 const u32 *id)
 | |
| {
 | |
| 	return NULL;
 | |
| }
 | |
| 
 | |
| static inline void of_iommu_get_resv_regions(struct device *dev,
 | |
| 					     struct list_head *list)
 | |
| {
 | |
| }
 | |
| 
 | |
| #endif	/* CONFIG_OF_IOMMU */
 | |
| 
 | |
| #endif /* __OF_IOMMU_H */
 |