aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/dma/ioat
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/ioat
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/ioat')
-rw-r--r--drivers/dma/ioat/dma.c7
-rw-r--r--drivers/dma/ioat/dma_v2.c8
2 files changed, 3 insertions, 12 deletions
diff --git a/drivers/dma/ioat/dma.c b/drivers/dma/ioat/dma.c
index dfe411b2014f..5c06117ac682 100644
--- a/drivers/dma/ioat/dma.c
+++ b/drivers/dma/ioat/dma.c
@@ -237,12 +237,7 @@ static dma_cookie_t ioat1_tx_submit(struct dma_async_tx_descriptor *tx)
237 237
238 spin_lock_bh(&ioat->desc_lock); 238 spin_lock_bh(&ioat->desc_lock);
239 /* cookie incr and addition to used_list must be atomic */ 239 /* cookie incr and addition to used_list must be atomic */
240 cookie = c->cookie; 240 cookie = dma_cookie_assign(tx);
241 cookie++;
242 if (cookie < 0)
243 cookie = 1;
244 c->cookie = cookie;
245 tx->cookie = cookie;
246 dev_dbg(to_dev(&ioat->base), "%s: cookie: %d\n", __func__, cookie); 241 dev_dbg(to_dev(&ioat->base), "%s: cookie: %d\n", __func__, cookie);
247 242
248 /* write address into NextDescriptor field of last desc in chain */ 243 /* write address into NextDescriptor field of last desc in chain */
diff --git a/drivers/dma/ioat/dma_v2.c b/drivers/dma/ioat/dma_v2.c
index 6c1e6754d9bd..17ecacb70d40 100644
--- a/drivers/dma/ioat/dma_v2.c
+++ b/drivers/dma/ioat/dma_v2.c
@@ -400,13 +400,9 @@ static dma_cookie_t ioat2_tx_submit_unlock(struct dma_async_tx_descriptor *tx)
400 struct dma_chan *c = tx->chan; 400 struct dma_chan *c = tx->chan;
401 struct ioat2_dma_chan *ioat = to_ioat2_chan(c); 401 struct ioat2_dma_chan *ioat = to_ioat2_chan(c);
402 struct ioat_chan_common *chan = &ioat->base; 402 struct ioat_chan_common *chan = &ioat->base;
403 dma_cookie_t cookie = c->cookie; 403 dma_cookie_t cookie;
404 404
405 cookie++; 405 cookie = dma_cookie_assign(tx);
406 if (cookie < 0)
407 cookie = 1;
408 tx->cookie = cookie;
409 c->cookie = cookie;
410 dev_dbg(to_dev(&ioat->base), "%s: cookie: %d\n", __func__, cookie); 406 dev_dbg(to_dev(&ioat->base), "%s: cookie: %d\n", __func__, cookie);
411 407
412 if (!test_and_set_bit(IOAT_COMPLETION_PENDING, &chan->state)) 408 if (!test_and_set_bit(IOAT_COMPLETION_PENDING, &chan->state))