aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux
diff options
context:
space:
mode:
authorRussell King - ARM Linux <linux@arm.linux.org.uk>2012-03-06 17:34:06 -0500
committerVinod Koul <vinod.koul@linux.intel.com>2012-03-13 02:06:06 -0400
commit4d4e58de32a192fea65ab84509d17d199bd291c8 (patch)
treebe35531778c9cc6bee73beb94d07e176a6f3599d /include/linux
parent08714f60b0fc6ea3a060b69b32e77139f14e6045 (diff)
dmaengine: move last completed cookie into generic dma_chan structure
Every DMA engine implementation declares a last completed dma cookie in their private dma channel structures. This is pointless, and forces driver specific code. Move this out into the common dma_chan structure. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk> Tested-by: Linus Walleij <linus.walleij@linaro.org> Reviewed-by: Linus Walleij <linus.walleij@linaro.org> Acked-by: Jassi Brar <jassisinghbrar@gmail.com> [imx-sdma.c & mxs-dma.c] Tested-by: Shawn Guo <shawn.guo@linaro.org> Signed-off-by: Vinod Koul <vinod.koul@linux.intel.com>
Diffstat (limited to 'include/linux')
-rw-r--r--include/linux/amba/pl08x.h2
-rw-r--r--include/linux/dmaengine.h2
2 files changed, 2 insertions, 2 deletions
diff --git a/include/linux/amba/pl08x.h b/include/linux/amba/pl08x.h
index 2c58853ca423..e64ce2cfee99 100644
--- a/include/linux/amba/pl08x.h
+++ b/include/linux/amba/pl08x.h
@@ -172,7 +172,6 @@ enum pl08x_dma_chan_state {
172 * @runtime_addr: address for RX/TX according to the runtime config 172 * @runtime_addr: address for RX/TX according to the runtime config
173 * @runtime_direction: current direction of this channel according to 173 * @runtime_direction: current direction of this channel according to
174 * runtime config 174 * runtime config
175 * @lc: last completed transaction on this channel
176 * @pend_list: queued transactions pending on this channel 175 * @pend_list: queued transactions pending on this channel
177 * @at: active transaction on this channel 176 * @at: active transaction on this channel
178 * @lock: a lock for this channel data 177 * @lock: a lock for this channel data
@@ -197,7 +196,6 @@ struct pl08x_dma_chan {
197 u32 src_cctl; 196 u32 src_cctl;
198 u32 dst_cctl; 197 u32 dst_cctl;
199 enum dma_transfer_direction runtime_direction; 198 enum dma_transfer_direction runtime_direction;
200 dma_cookie_t lc;
201 struct list_head pend_list; 199 struct list_head pend_list;
202 struct pl08x_txd *at; 200 struct pl08x_txd *at;
203 spinlock_t lock; 201 spinlock_t lock;
diff --git a/include/linux/dmaengine.h b/include/linux/dmaengine.h
index 7e640bf27d2d..c59c4f0c2cc9 100644
--- a/include/linux/dmaengine.h
+++ b/include/linux/dmaengine.h
@@ -258,6 +258,7 @@ struct dma_chan_percpu {
258 * struct dma_chan - devices supply DMA channels, clients use them 258 * struct dma_chan - devices supply DMA channels, clients use them
259 * @device: ptr to the dma device who supplies this channel, always !%NULL 259 * @device: ptr to the dma device who supplies this channel, always !%NULL
260 * @cookie: last cookie value returned to client 260 * @cookie: last cookie value returned to client
261 * @completed_cookie: last completed cookie for this channel
261 * @chan_id: channel ID for sysfs 262 * @chan_id: channel ID for sysfs
262 * @dev: class device for sysfs 263 * @dev: class device for sysfs
263 * @device_node: used to add this to the device chan list 264 * @device_node: used to add this to the device chan list
@@ -269,6 +270,7 @@ struct dma_chan_percpu {
269struct dma_chan { 270struct dma_chan {
270 struct dma_device *device; 271 struct dma_device *device;
271 dma_cookie_t cookie; 272 dma_cookie_t cookie;
273 dma_cookie_t completed_cookie;
272 274
273 /* sysfs */ 275 /* sysfs */
274 int chan_id; 276 int chan_id;