forked from mirrors/linux
		
	dmaengine: Move dma_get_slave_caps() implementation to dmaengine.c
The function is too big to be a static inline. Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com> Signed-off-by: Vinod Koul <vinod.koul@intel.com>
This commit is contained in:
		
							parent
							
								
									816070ede7
								
							
						
					
					
						commit
						0d5484b1c3
					
				
					 2 changed files with 34 additions and 31 deletions
				
			
		|  | @ -479,6 +479,39 @@ static void dma_channel_rebalance(void) | ||||||
| 		} | 		} | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | int dma_get_slave_caps(struct dma_chan *chan, struct dma_slave_caps *caps) | ||||||
|  | { | ||||||
|  | 	struct dma_device *device; | ||||||
|  | 
 | ||||||
|  | 	if (!chan || !caps) | ||||||
|  | 		return -EINVAL; | ||||||
|  | 
 | ||||||
|  | 	device = chan->device; | ||||||
|  | 
 | ||||||
|  | 	/* check if the channel supports slave transactions */ | ||||||
|  | 	if (!test_bit(DMA_SLAVE, device->cap_mask.bits)) | ||||||
|  | 		return -ENXIO; | ||||||
|  | 
 | ||||||
|  | 	/*
 | ||||||
|  | 	 * Check whether it reports it uses the generic slave | ||||||
|  | 	 * capabilities, if not, that means it doesn't support any | ||||||
|  | 	 * kind of slave capabilities reporting. | ||||||
|  | 	 */ | ||||||
|  | 	if (!device->directions) | ||||||
|  | 		return -ENXIO; | ||||||
|  | 
 | ||||||
|  | 	caps->src_addr_widths = device->src_addr_widths; | ||||||
|  | 	caps->dst_addr_widths = device->dst_addr_widths; | ||||||
|  | 	caps->directions = device->directions; | ||||||
|  | 	caps->residue_granularity = device->residue_granularity; | ||||||
|  | 
 | ||||||
|  | 	caps->cmd_pause = !!device->device_pause; | ||||||
|  | 	caps->cmd_terminate = !!device->device_terminate_all; | ||||||
|  | 
 | ||||||
|  | 	return 0; | ||||||
|  | } | ||||||
|  | EXPORT_SYMBOL_GPL(dma_get_slave_caps); | ||||||
|  | 
 | ||||||
| static struct dma_chan *private_candidate(const dma_cap_mask_t *mask, | static struct dma_chan *private_candidate(const dma_cap_mask_t *mask, | ||||||
| 					  struct dma_device *dev, | 					  struct dma_device *dev, | ||||||
| 					  dma_filter_fn fn, void *fn_param) | 					  dma_filter_fn fn, void *fn_param) | ||||||
|  |  | ||||||
|  | @ -758,37 +758,7 @@ static inline struct dma_async_tx_descriptor *dmaengine_prep_dma_sg( | ||||||
| 			src_sg, src_nents, flags); | 			src_sg, src_nents, flags); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| static inline int dma_get_slave_caps(struct dma_chan *chan, struct dma_slave_caps *caps) | int dma_get_slave_caps(struct dma_chan *chan, struct dma_slave_caps *caps); | ||||||
| { |  | ||||||
| 	struct dma_device *device; |  | ||||||
| 
 |  | ||||||
| 	if (!chan || !caps) |  | ||||||
| 		return -EINVAL; |  | ||||||
| 
 |  | ||||||
| 	device = chan->device; |  | ||||||
| 
 |  | ||||||
| 	/* check if the channel supports slave transactions */ |  | ||||||
| 	if (!test_bit(DMA_SLAVE, device->cap_mask.bits)) |  | ||||||
| 		return -ENXIO; |  | ||||||
| 
 |  | ||||||
| 	/*
 |  | ||||||
| 	 * Check whether it reports it uses the generic slave |  | ||||||
| 	 * capabilities, if not, that means it doesn't support any |  | ||||||
| 	 * kind of slave capabilities reporting. |  | ||||||
| 	 */ |  | ||||||
| 	if (!device->directions) |  | ||||||
| 		return -ENXIO; |  | ||||||
| 
 |  | ||||||
| 	caps->src_addr_widths = device->src_addr_widths; |  | ||||||
| 	caps->dst_addr_widths = device->dst_addr_widths; |  | ||||||
| 	caps->directions = device->directions; |  | ||||||
| 	caps->residue_granularity = device->residue_granularity; |  | ||||||
| 
 |  | ||||||
| 	caps->cmd_pause = !!device->device_pause; |  | ||||||
| 	caps->cmd_terminate = !!device->device_terminate_all; |  | ||||||
| 
 |  | ||||||
| 	return 0; |  | ||||||
| } |  | ||||||
| 
 | 
 | ||||||
| static inline int dmaengine_terminate_all(struct dma_chan *chan) | static inline int dmaengine_terminate_all(struct dma_chan *chan) | ||||||
| { | { | ||||||
|  |  | ||||||
		Loading…
	
		Reference in a new issue
	
	 Laurent Pinchart
						Laurent Pinchart