aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/dma
diff options
context:
space:
mode:
authorRussell King <rmk+kernel@arm.linux.org.uk>2012-05-25 07:08:13 -0400
committerRussell King <rmk+kernel@arm.linux.org.uk>2012-07-01 09:15:54 -0400
commit7847f6b55e6a5fe0bbcdaf20db291c9b1db890e8 (patch)
tree38a859d73ff084bee7bd4faee2c71eab9cec7cd5 /drivers/dma
parentc48d49632989920a7903c2e14e7a6ddff048d1aa (diff)
dmaengine: PL08x: remove waiting descriptor pointer
As we no longer need to pass a descriptor to prep_phy_channel(), we don't need to keep track of the descriptor which is waiting for a channel to become available. So let's get rid of it. Acked-by: Linus Walleij <linus.walleij@linaro.org> Tested-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'drivers/dma')
-rw-r--r--drivers/dma/amba-pl08x.c8
1 files changed, 1 insertions, 7 deletions
diff --git a/drivers/dma/amba-pl08x.c b/drivers/dma/amba-pl08x.c
index e04ca0b01f98..88661fa4542c 100644
--- a/drivers/dma/amba-pl08x.c
+++ b/drivers/dma/amba-pl08x.c
@@ -223,8 +223,6 @@ enum pl08x_dma_chan_state {
223 * @host: a pointer to the host (internal use) 223 * @host: a pointer to the host (internal use)
224 * @state: whether the channel is idle, paused, running etc 224 * @state: whether the channel is idle, paused, running etc
225 * @slave: whether this channel is a device (slave) or for memcpy 225 * @slave: whether this channel is a device (slave) or for memcpy
226 * @waiting: a TX descriptor on this channel which is waiting for a physical
227 * channel to become available
228 * @signal: the physical DMA request signal which this channel is using 226 * @signal: the physical DMA request signal which this channel is using
229 * @mux_use: count of descriptors using this DMA request signal setting 227 * @mux_use: count of descriptors using this DMA request signal setting
230 */ 228 */
@@ -243,7 +241,6 @@ struct pl08x_dma_chan {
243 struct pl08x_driver_data *host; 241 struct pl08x_driver_data *host;
244 enum pl08x_dma_chan_state state; 242 enum pl08x_dma_chan_state state;
245 bool slave; 243 bool slave;
246 struct pl08x_txd *waiting;
247 int signal; 244 int signal;
248 unsigned mux_use; 245 unsigned mux_use;
249}; 246};
@@ -1074,7 +1071,6 @@ static dma_cookie_t pl08x_tx_submit(struct dma_async_tx_descriptor *tx)
1074 if (!plchan->slave && !plchan->phychan) { 1071 if (!plchan->slave && !plchan->phychan) {
1075 /* Do this memcpy whenever there is a channel ready */ 1072 /* Do this memcpy whenever there is a channel ready */
1076 plchan->state = PL08X_CHAN_WAITING; 1073 plchan->state = PL08X_CHAN_WAITING;
1077 plchan->waiting = txd;
1078 } else { 1074 } else {
1079 plchan->phychan_hold--; 1075 plchan->phychan_hold--;
1080 } 1076 }
@@ -1696,8 +1692,7 @@ static void pl08x_tasklet(unsigned long data)
1696 */ 1692 */
1697 list_for_each_entry(waiting, &pl08x->memcpy.channels, 1693 list_for_each_entry(waiting, &pl08x->memcpy.channels,
1698 chan.device_node) { 1694 chan.device_node) {
1699 if (waiting->state == PL08X_CHAN_WAITING && 1695 if (waiting->state == PL08X_CHAN_WAITING) {
1700 waiting->waiting != NULL) {
1701 int ret; 1696 int ret;
1702 1697
1703 /* This should REALLY not fail now */ 1698 /* This should REALLY not fail now */
@@ -1705,7 +1700,6 @@ static void pl08x_tasklet(unsigned long data)
1705 BUG_ON(ret); 1700 BUG_ON(ret);
1706 waiting->phychan_hold--; 1701 waiting->phychan_hold--;
1707 waiting->state = PL08X_CHAN_RUNNING; 1702 waiting->state = PL08X_CHAN_RUNNING;
1708 waiting->waiting = NULL;
1709 pl08x_issue_pending(&waiting->chan); 1703 pl08x_issue_pending(&waiting->chan);
1710 break; 1704 break;
1711 } 1705 }