diff options
Diffstat (limited to 'include/linux/amba/pl08x.h')
| -rw-r--r-- | include/linux/amba/pl08x.h | 30 | 
1 files changed, 25 insertions, 5 deletions
diff --git a/include/linux/amba/pl08x.h b/include/linux/amba/pl08x.h index e6e28f37d8e..9eabffbc4e5 100644 --- a/include/linux/amba/pl08x.h +++ b/include/linux/amba/pl08x.h @@ -47,6 +47,9 @@ enum {   * @muxval: a number usually used to poke into some mux regiser to   * mux in the signal to this channel   * @cctl_opt: default options for the channel control register + * @device_fc: Flow Controller Settings for ccfg register. Only valid for slave + * channels. Fill with 'true' if peripheral should be flow controller. Direction + * will be selected at Runtime.   * @addr: source/target address in physical memory for this DMA channel,   * can be the address of a FIFO register for burst requests for example.   * This can be left undefined if the PrimeCell API is used for configuring @@ -65,6 +68,7 @@ struct pl08x_channel_data {  	int max_signal;  	u32 muxval;  	u32 cctl; +	bool device_fc;  	dma_addr_t addr;  	bool circular_buffer;  	bool single; @@ -77,13 +81,11 @@ struct pl08x_channel_data {   * @addr: current address   * @maxwidth: the maximum width of a transfer on this bus   * @buswidth: the width of this bus in bytes: 1, 2 or 4 - * @fill_bytes: bytes required to fill to the next bus memory boundary   */  struct pl08x_bus_data {  	dma_addr_t addr;  	u8 maxwidth;  	u8 buswidth; -	size_t fill_bytes;  };  /** @@ -104,17 +106,35 @@ struct pl08x_phy_chan {  };  /** + * struct pl08x_sg - structure containing data per sg + * @src_addr: src address of sg + * @dst_addr: dst address of sg + * @len: transfer len in bytes + * @node: node for txd's dsg_list + */ +struct pl08x_sg { +	dma_addr_t src_addr; +	dma_addr_t dst_addr; +	size_t len; +	struct list_head node; +}; + +/**   * struct pl08x_txd - wrapper for struct dma_async_tx_descriptor + * @tx: async tx descriptor + * @node: node for txd list for channels + * @dsg_list: list of children sg's + * @direction: direction of transfer   * @llis_bus: DMA memory address (physical) start for the LLIs   * @llis_va: virtual memory address start for the LLIs + * @cctl: control reg values for current txd + * @ccfg: config reg values for current txd   */  struct pl08x_txd {  	struct dma_async_tx_descriptor tx;  	struct list_head node; +	struct list_head dsg_list;  	enum dma_data_direction	direction; -	dma_addr_t src_addr; -	dma_addr_t dst_addr; -	size_t len;  	dma_addr_t llis_bus;  	struct pl08x_lli *llis_va;  	/* Default cctl value for LLIs */  |