3.10. pl08x_terminate_all

/*
 * CAUTION: Called by ALSA interrupt handler
 */
void pl08x_terminate_all1(struct dma_chan *chan)
{
	struct pl08x_dma_chan *local_chan =
		container_of(chan, struct pl08x_dma_chan, chan);
	int pl08x_chan_num = local_chan->chan_id;

	if (local_chan->slave->dev) {
		pl08x_disable_dmac_chan(pl08x_chan_num);
		/*
		 * Allow slaves to activate signals
		 * concurrent to the DMAC enable
		 */
		if (local_chan->at) {
			if (local_chan->at->tx.callback) {
				((struct pl08x_callback_param *)
					local_chan->at->tx.callback_param)
						->act = PL08X_SIGNAL_STOP;

				local_chan->at->tx.callback(
					local_chan->at->tx.callback_param);
			}
		}
	}
}
        

1

结束所有的通道