diff options
author | Viresh Kumar <viresh.kumar@st.com> | 2011-08-05 15:32:43 +0530 |
---|---|---|
committer | Vinod Koul <vinod.koul@intel.com> | 2011-09-19 15:13:06 +0530 |
commit | b7f69d9d4283cfbbf7458962cf9bdba6463b831d (patch) | |
tree | 76e29e885d467486922f3b2fbd2c480a7b5a1b8f /include/linux/amba | |
parent | 937bb6e4c676fecbfbc1939b942241c3f27bf5d8 (diff) | |
download | op-kernel-dev-b7f69d9d4283cfbbf7458962cf9bdba6463b831d.zip op-kernel-dev-b7f69d9d4283cfbbf7458962cf9bdba6463b831d.tar.gz |
dmaengine/amba-pl08x: Add support for sg len greater than one for slave transfers
Untill now, sg_len greater than one is not supported. This patch adds support to
do that.
Note: Still, if peripheral is flow controller, sg_len can't be greater that one.
Signed-off-by: Viresh Kumar <viresh.kumar@st.com>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
Diffstat (limited to 'include/linux/amba')
-rw-r--r-- | include/linux/amba/pl08x.h | 22 |
1 files changed, 16 insertions, 6 deletions
diff --git a/include/linux/amba/pl08x.h b/include/linux/amba/pl08x.h index a22662c..9eabffb 100644 --- a/include/linux/amba/pl08x.h +++ b/include/linux/amba/pl08x.h @@ -106,12 +106,24 @@ 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 - * @src_addr: src address of txd - * @dst_addr: dst address of txd - * @len: transfer len in bytes + * @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 @@ -121,10 +133,8 @@ struct pl08x_phy_chan { 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 */ |