 e1d8f62ad4
			
		
	
	
	e1d8f62ad4
	
	
	
		
			
			* stefano/swiotlb-xen-9.1: swiotlb-xen: fix error code returned by xen_swiotlb_map_sg_attrs swiotlb-xen: static inline xen_phys_to_bus, xen_bus_to_phys, xen_virt_to_bus and range_straddles_page_boundary grant-table: call set_phys_to_machine after mapping grant refs arm,arm64: do not always merge biovec if we are running on Xen swiotlb: print a warning when the swiotlb is full swiotlb-xen: use xen_dma_map/unmap_page, xen_dma_sync_single_for_cpu/device xen: introduce xen_dma_map/unmap_page and xen_dma_sync_single_for_cpu/device swiotlb-xen: use xen_alloc/free_coherent_pages xen: introduce xen_alloc/free_coherent_pages arm64/xen: get_dma_ops: return xen_dma_ops if we are running as xen_initial_domain arm/xen: get_dma_ops: return xen_dma_ops if we are running as xen_initial_domain swiotlb-xen: introduce xen_swiotlb_set_dma_mask xen/arm,arm64: enable SWIOTLB_XEN xen: make xen_create_contiguous_region return the dma address xen/x86: allow __set_phys_to_machine for autotranslate guests arm/xen,arm64/xen: introduce p2m arm64: define DMA_ERROR_CODE arm: make SWIOTLB available Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com> Conflicts: arch/arm/include/asm/dma-mapping.h drivers/xen/swiotlb-xen.c [Conflicts arose b/c "arm: make SWIOTLB available" v8 was in Stefano's branch, while I had v9 + Ack from Russel. I also fixed up white-space issues]
		
			
				
	
	
		
			61 lines
		
	
	
	
		
			1.9 KiB
			
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			61 lines
		
	
	
	
		
			1.9 KiB
			
		
	
	
	
		
			C
		
	
	
	
	
	
| #ifndef __LINUX_SWIOTLB_XEN_H
 | |
| #define __LINUX_SWIOTLB_XEN_H
 | |
| 
 | |
| #include <linux/dma-direction.h>
 | |
| #include <linux/swiotlb.h>
 | |
| 
 | |
| extern int xen_swiotlb_init(int verbose, bool early);
 | |
| 
 | |
| extern void
 | |
| *xen_swiotlb_alloc_coherent(struct device *hwdev, size_t size,
 | |
| 			    dma_addr_t *dma_handle, gfp_t flags,
 | |
| 			    struct dma_attrs *attrs);
 | |
| 
 | |
| extern void
 | |
| xen_swiotlb_free_coherent(struct device *hwdev, size_t size,
 | |
| 			  void *vaddr, dma_addr_t dma_handle,
 | |
| 			  struct dma_attrs *attrs);
 | |
| 
 | |
| extern dma_addr_t xen_swiotlb_map_page(struct device *dev, struct page *page,
 | |
| 				       unsigned long offset, size_t size,
 | |
| 				       enum dma_data_direction dir,
 | |
| 				       struct dma_attrs *attrs);
 | |
| 
 | |
| extern void xen_swiotlb_unmap_page(struct device *hwdev, dma_addr_t dev_addr,
 | |
| 				   size_t size, enum dma_data_direction dir,
 | |
| 				   struct dma_attrs *attrs);
 | |
| extern int
 | |
| xen_swiotlb_map_sg_attrs(struct device *hwdev, struct scatterlist *sgl,
 | |
| 			 int nelems, enum dma_data_direction dir,
 | |
| 			 struct dma_attrs *attrs);
 | |
| 
 | |
| extern void
 | |
| xen_swiotlb_unmap_sg_attrs(struct device *hwdev, struct scatterlist *sgl,
 | |
| 			   int nelems, enum dma_data_direction dir,
 | |
| 			   struct dma_attrs *attrs);
 | |
| 
 | |
| extern void
 | |
| xen_swiotlb_sync_single_for_cpu(struct device *hwdev, dma_addr_t dev_addr,
 | |
| 				size_t size, enum dma_data_direction dir);
 | |
| 
 | |
| extern void
 | |
| xen_swiotlb_sync_sg_for_cpu(struct device *hwdev, struct scatterlist *sg,
 | |
| 			    int nelems, enum dma_data_direction dir);
 | |
| 
 | |
| extern void
 | |
| xen_swiotlb_sync_single_for_device(struct device *hwdev, dma_addr_t dev_addr,
 | |
| 				   size_t size, enum dma_data_direction dir);
 | |
| 
 | |
| extern void
 | |
| xen_swiotlb_sync_sg_for_device(struct device *hwdev, struct scatterlist *sg,
 | |
| 			       int nelems, enum dma_data_direction dir);
 | |
| 
 | |
| extern int
 | |
| xen_swiotlb_dma_mapping_error(struct device *hwdev, dma_addr_t dma_addr);
 | |
| 
 | |
| extern int
 | |
| xen_swiotlb_dma_supported(struct device *hwdev, u64 mask);
 | |
| 
 | |
| extern int
 | |
| xen_swiotlb_set_dma_mask(struct device *dev, u64 dma_mask);
 | |
| #endif /* __LINUX_SWIOTLB_XEN_H */
 |