forked from mirrors/linux
		
	dma-mapping: add a dma_addressing_limited helper
This helper returns if the device has issues addressing all present memory in the system. Signed-off-by: Christoph Hellwig <hch@lst.de>
This commit is contained in:
		
							parent
							
								
									9087c37584
								
							
						
					
					
						commit
						b866455423
					
				
					 1 changed files with 14 additions and 0 deletions
				
			
		| 
						 | 
				
			
			@ -679,6 +679,20 @@ static inline int dma_coerce_mask_and_coherent(struct device *dev, u64 mask)
 | 
			
		|||
	return dma_set_mask_and_coherent(dev, mask);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * dma_addressing_limited - return if the device is addressing limited
 | 
			
		||||
 * @dev:	device to check
 | 
			
		||||
 *
 | 
			
		||||
 * Return %true if the devices DMA mask is too small to address all memory in
 | 
			
		||||
 * the system, else %false.  Lack of addressing bits is the prime reason for
 | 
			
		||||
 * bounce buffering, but might not be the only one.
 | 
			
		||||
 */
 | 
			
		||||
static inline bool dma_addressing_limited(struct device *dev)
 | 
			
		||||
{
 | 
			
		||||
	return min_not_zero(*dev->dma_mask, dev->bus_dma_mask) <
 | 
			
		||||
		dma_get_required_mask(dev);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#ifdef CONFIG_ARCH_HAS_SETUP_DMA_OPS
 | 
			
		||||
void arch_setup_dma_ops(struct device *dev, u64 dma_base, u64 size,
 | 
			
		||||
		const struct iommu_ops *iommu, bool coherent);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in a new issue