|  | @@ -210,3 +210,58 @@ void edma_free_slot(unsigned slot);
 | 
	
		
			
				|  |  |  int edma_alloc_cont_slots(unsigned ctlr, unsigned int id, int slot, int count);
 | 
	
		
			
				|  |  |  int edma_free_cont_slots(unsigned slot, int count);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +/* calls that operate on part of a parameter RAM slot */
 | 
	
		
			
				|  |  | +void edma_set_src(unsigned slot, dma_addr_t src_port,
 | 
	
		
			
				|  |  | +				enum address_mode mode, enum fifo_width);
 | 
	
		
			
				|  |  | +void edma_set_dest(unsigned slot, dma_addr_t dest_port,
 | 
	
		
			
				|  |  | +				 enum address_mode mode, enum fifo_width);
 | 
	
		
			
				|  |  | +void edma_get_position(unsigned slot, dma_addr_t *src, dma_addr_t *dst);
 | 
	
		
			
				|  |  | +void edma_set_src_index(unsigned slot, s16 src_bidx, s16 src_cidx);
 | 
	
		
			
				|  |  | +void edma_set_dest_index(unsigned slot, s16 dest_bidx, s16 dest_cidx);
 | 
	
		
			
				|  |  | +void edma_set_transfer_params(unsigned slot, u16 acnt, u16 bcnt, u16 ccnt,
 | 
	
		
			
				|  |  | +		u16 bcnt_rld, enum sync_dimension sync_mode);
 | 
	
		
			
				|  |  | +void edma_link(unsigned from, unsigned to);
 | 
	
		
			
				|  |  | +void edma_unlink(unsigned from);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +/* calls that operate on an entire parameter RAM slot */
 | 
	
		
			
				|  |  | +void edma_write_slot(unsigned slot, const struct edmacc_param *params);
 | 
	
		
			
				|  |  | +void edma_read_slot(unsigned slot, struct edmacc_param *params);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +/* channel control operations */
 | 
	
		
			
				|  |  | +int edma_start(unsigned channel);
 | 
	
		
			
				|  |  | +void edma_stop(unsigned channel);
 | 
	
		
			
				|  |  | +void edma_clean_channel(unsigned channel);
 | 
	
		
			
				|  |  | +void edma_clear_event(unsigned channel);
 | 
	
		
			
				|  |  | +void edma_pause(unsigned channel);
 | 
	
		
			
				|  |  | +void edma_resume(unsigned channel);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +struct edma_rsv_info {
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	const s16	(*rsv_chans)[2];
 | 
	
		
			
				|  |  | +	const s16	(*rsv_slots)[2];
 | 
	
		
			
				|  |  | +};
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +/* platform_data for EDMA driver */
 | 
	
		
			
				|  |  | +struct edma_soc_info {
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	/* how many dma resources of each type */
 | 
	
		
			
				|  |  | +	unsigned	n_channel;
 | 
	
		
			
				|  |  | +	unsigned	n_region;
 | 
	
		
			
				|  |  | +	unsigned	n_slot;
 | 
	
		
			
				|  |  | +	unsigned	n_tc;
 | 
	
		
			
				|  |  | +	unsigned	n_cc;
 | 
	
		
			
				|  |  | +	/*
 | 
	
		
			
				|  |  | +	 * Default queue is expected to be a low-priority queue.
 | 
	
		
			
				|  |  | +	 * This way, long transfers on the default queue started
 | 
	
		
			
				|  |  | +	 * by the codec engine will not cause audio defects.
 | 
	
		
			
				|  |  | +	 */
 | 
	
		
			
				|  |  | +	enum dma_event_q	default_queue;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	/* Resource reservation for other cores */
 | 
	
		
			
				|  |  | +	struct edma_rsv_info	*rsv;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	const s8	(*queue_tc_mapping)[2];
 | 
	
		
			
				|  |  | +	const s8	(*queue_priority_mapping)[2];
 | 
	
		
			
				|  |  | +};
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#endif
 |