aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/dma/at_hdmac.c
diff options
context:
space:
mode:
authorRussell King - ARM Linux <linux@arm.linux.org.uk>2012-03-06 17:34:46 -0500
committerVinod Koul <vinod.koul@linux.intel.com>2012-03-13 02:06:52 -0400
commit884485e1f12dcd39390f042e772cdbefc9ebb750 (patch)
treea35fccb601c48ae1ea839aa6d62e4f102f7b66c3 /drivers/dma/at_hdmac.c
parentd2ebfb335b0426deb1a4fb14e4e926d81ecd8235 (diff)
dmaengine: consolidate assignment of DMA cookies
Everyone deals with assigning DMA cookies in the same way (it's part of the API so they should be), so lets consolidate the common code into a helper function to avoid this duplication. 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 'drivers/dma/at_hdmac.c')
-rw-r--r--drivers/dma/at_hdmac.c23
1 files changed, 1 insertions, 22 deletions
diff --git a/drivers/dma/at_hdmac.c b/drivers/dma/at_hdmac.c
index ce26ba381144..df47e7d6164b 100644
--- a/drivers/dma/at_hdmac.c
+++ b/drivers/dma/at_hdmac.c
@@ -193,27 +193,6 @@ static void atc_desc_chain(struct at_desc **first, struct at_desc **prev,
193} 193}
194 194
195/** 195/**
196 * atc_assign_cookie - compute and assign new cookie
197 * @atchan: channel we work on
198 * @desc: descriptor to assign cookie for
199 *
200 * Called with atchan->lock held and bh disabled
201 */
202static dma_cookie_t
203atc_assign_cookie(struct at_dma_chan *atchan, struct at_desc *desc)
204{
205 dma_cookie_t cookie = atchan->chan_common.cookie;
206
207 if (++cookie < 0)
208 cookie = 1;
209
210 atchan->chan_common.cookie = cookie;
211 desc->txd.cookie = cookie;
212
213 return cookie;
214}
215
216/**
217 * atc_dostart - starts the DMA engine for real 196 * atc_dostart - starts the DMA engine for real
218 * @atchan: the channel we want to start 197 * @atchan: the channel we want to start
219 * @first: first descriptor in the list we want to begin with 198 * @first: first descriptor in the list we want to begin with
@@ -548,7 +527,7 @@ static dma_cookie_t atc_tx_submit(struct dma_async_tx_descriptor *tx)
548 unsigned long flags; 527 unsigned long flags;
549 528
550 spin_lock_irqsave(&atchan->lock, flags); 529 spin_lock_irqsave(&atchan->lock, flags);
551 cookie = atc_assign_cookie(atchan, desc); 530 cookie = dma_cookie_assign(tx);
552 531
553 if (list_empty(&atchan->active_list)) { 532 if (list_empty(&atchan->active_list)) {
554 dev_vdbg(chan2dev(tx->chan), "tx_submit: started %u\n", 533 dev_vdbg(chan2dev(tx->chan), "tx_submit: started %u\n",