aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/dma/dw_dmac.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/dw_dmac.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/dw_dmac.c')
-rw-r--r--drivers/dma/dw_dmac.c17
1 files changed, 1 insertions, 16 deletions
diff --git a/drivers/dma/dw_dmac.c b/drivers/dma/dw_dmac.c
index b279e1920725..3a4ca67ace02 100644
--- a/drivers/dma/dw_dmac.c
+++ b/drivers/dma/dw_dmac.c
@@ -157,21 +157,6 @@ static void dwc_desc_put(struct dw_dma_chan *dwc, struct dw_desc *desc)
157 } 157 }
158} 158}
159 159
160/* Called with dwc->lock held and bh disabled */
161static dma_cookie_t
162dwc_assign_cookie(struct dw_dma_chan *dwc, struct dw_desc *desc)
163{
164 dma_cookie_t cookie = dwc->chan.cookie;
165
166 if (++cookie < 0)
167 cookie = 1;
168
169 dwc->chan.cookie = cookie;
170 desc->txd.cookie = cookie;
171
172 return cookie;
173}
174
175static void dwc_initialize(struct dw_dma_chan *dwc) 160static void dwc_initialize(struct dw_dma_chan *dwc)
176{ 161{
177 struct dw_dma *dw = to_dw_dma(dwc->chan.device); 162 struct dw_dma *dw = to_dw_dma(dwc->chan.device);
@@ -603,7 +588,7 @@ static dma_cookie_t dwc_tx_submit(struct dma_async_tx_descriptor *tx)
603 unsigned long flags; 588 unsigned long flags;
604 589
605 spin_lock_irqsave(&dwc->lock, flags); 590 spin_lock_irqsave(&dwc->lock, flags);
606 cookie = dwc_assign_cookie(dwc, desc); 591 cookie = dma_cookie_assign(tx);
607 592
608 /* 593 /*
609 * REVISIT: We should attempt to chain as many descriptors as 594 * REVISIT: We should attempt to chain as many descriptors as