diff options
| -rw-r--r-- | drivers/dma/amba-pl08x.c | 8 |
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 | } |
