From: Russell King Date: Sat, 26 May 2012 14:43:00 +0000 (+0100) Subject: dmaengine: PL08x: get rid of pl08x_prep_channel_resources X-Git-Tag: v3.6-rc1~13^2^2~2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=aa4afb754d42be064ae649b74a599b9d9d04ac57;p=platform%2Fupstream%2Fkernel-adaptation-pc.git dmaengine: PL08x: get rid of pl08x_prep_channel_resources This function is now unnecessary; we can move its internals inline instead. Acked-by: Linus Walleij Tested-by: Linus Walleij Signed-off-by: Russell King --- diff --git a/drivers/dma/amba-pl08x.c b/drivers/dma/amba-pl08x.c index c42c7ef..9297240 100644 --- a/drivers/dma/amba-pl08x.c +++ b/drivers/dma/amba-pl08x.c @@ -1352,25 +1352,6 @@ static void pl08x_issue_pending(struct dma_chan *chan) spin_unlock_irqrestore(&plchan->vc.lock, flags); } -static int pl08x_prep_channel_resources(struct pl08x_dma_chan *plchan, - struct pl08x_txd *txd) -{ - struct pl08x_driver_data *pl08x = plchan->host; - int num_llis; - - num_llis = pl08x_fill_llis_for_desc(pl08x, txd); - if (!num_llis) { - unsigned long flags; - - spin_lock_irqsave(&plchan->vc.lock, flags); - pl08x_free_txd(pl08x, txd); - spin_unlock_irqrestore(&plchan->vc.lock, flags); - - return -EINVAL; - } - return 0; -} - static struct pl08x_txd *pl08x_get_txd(struct pl08x_dma_chan *plchan) { struct pl08x_txd *txd = kzalloc(sizeof(*txd), GFP_NOWAIT); @@ -1430,9 +1411,11 @@ static struct dma_async_tx_descriptor *pl08x_prep_dma_memcpy( txd->cctl |= pl08x_select_bus(pl08x->mem_buses, pl08x->mem_buses); - ret = pl08x_prep_channel_resources(plchan, txd); - if (ret) + ret = pl08x_fill_llis_for_desc(plchan->host, txd); + if (!ret) { + pl08x_free_txd(pl08x, txd); return NULL; + } return vchan_tx_prep(&plchan->vc, &txd->vd, flags); } @@ -1546,9 +1529,12 @@ static struct dma_async_tx_descriptor *pl08x_prep_slave_sg( } } - ret = pl08x_prep_channel_resources(plchan, txd); - if (ret) + ret = pl08x_fill_llis_for_desc(plchan->host, txd); + if (!ret) { + pl08x_release_mux(plchan); + pl08x_free_txd(pl08x, txd); return NULL; + } return vchan_tx_prep(&plchan->vc, &txd->vd, flags); }