aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/amba
diff options
context:
space:
mode:
authorViresh Kumar <viresh.kumar@st.com>2011-08-05 06:02:43 -0400
committerVinod Koul <vinod.koul@intel.com>2011-09-19 05:43:06 -0400
commitb7f69d9d4283cfbbf7458962cf9bdba6463b831d (patch)
tree76e29e885d467486922f3b2fbd2c480a7b5a1b8f /include/linux/amba
parent937bb6e4c676fecbfbc1939b942241c3f27bf5d8 (diff)
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.h22
1 files changed, 16 insertions, 6 deletions
diff --git a/include/linux/amba/pl08x.h b/include/linux/amba/pl08x.h
index a22662c93981..9eabffbc4e50 100644
--- a/include/linux/amba/pl08x.h
+++ b/include/linux/amba/pl08x.h
@@ -106,12 +106,24 @@ struct pl08x_phy_chan {
106}; 106};
107 107
108/** 108/**
109 * struct pl08x_sg - structure containing data per sg
110 * @src_addr: src address of sg
111 * @dst_addr: dst address of sg
112 * @len: transfer len in bytes
113 * @node: node for txd's dsg_list
114 */
115struct pl08x_sg {
116 dma_addr_t src_addr;
117 dma_addr_t dst_addr;
118 size_t len;
119 struct list_head node;
120};
121
122/**
109 * struct pl08x_txd - wrapper for struct dma_async_tx_descriptor 123 * struct pl08x_txd - wrapper for struct dma_async_tx_descriptor
110 * @tx: async tx descriptor 124 * @tx: async tx descriptor
111 * @node: node for txd list for channels 125 * @node: node for txd list for channels
112 * @src_addr: src address of txd 126 * @dsg_list: list of children sg's
113 * @dst_addr: dst address of txd
114 * @len: transfer len in bytes
115 * @direction: direction of transfer 127 * @direction: direction of transfer
116 * @llis_bus: DMA memory address (physical) start for the LLIs 128 * @llis_bus: DMA memory address (physical) start for the LLIs
117 * @llis_va: virtual memory address start for the LLIs 129 * @llis_va: virtual memory address start for the LLIs
@@ -121,10 +133,8 @@ struct pl08x_phy_chan {
121struct pl08x_txd { 133struct pl08x_txd {
122 struct dma_async_tx_descriptor tx; 134 struct dma_async_tx_descriptor tx;
123 struct list_head node; 135 struct list_head node;
136 struct list_head dsg_list;
124 enum dma_data_direction direction; 137 enum dma_data_direction direction;
125 dma_addr_t src_addr;
126 dma_addr_t dst_addr;
127 size_t len;
128 dma_addr_t llis_bus; 138 dma_addr_t llis_bus;
129 struct pl08x_lli *llis_va; 139 struct pl08x_lli *llis_va;
130 /* Default cctl value for LLIs */ 140 /* Default cctl value for LLIs */