Lines Matching refs:pchan
32 struct mxs_dma_chan *pchan; in mxs_dma_validate_chan() local
37 pchan = mxs_dma_channels + channel; in mxs_dma_validate_chan()
38 if (!(pchan->flags & MXS_DMA_FLAGS_ALLOCATED)) in mxs_dma_validate_chan()
114 struct mxs_dma_chan *pchan; in mxs_dma_enable() local
122 pchan = mxs_dma_channels + channel; in mxs_dma_enable()
124 if (pchan->pending_num == 0) { in mxs_dma_enable()
125 pchan->flags |= MXS_DMA_FLAGS_BUSY; in mxs_dma_enable()
129 pdesc = list_first_entry(&pchan->active, struct mxs_dma_desc, node); in mxs_dma_enable()
133 if (pchan->flags & MXS_DMA_FLAGS_BUSY) { in mxs_dma_enable()
147 writel(pchan->pending_num, in mxs_dma_enable()
149 pchan->active_num += pchan->pending_num; in mxs_dma_enable()
150 pchan->pending_num = 0; in mxs_dma_enable()
152 pchan->active_num += pchan->pending_num; in mxs_dma_enable()
153 pchan->pending_num = 0; in mxs_dma_enable()
156 writel(pchan->active_num, in mxs_dma_enable()
162 pchan->flags |= MXS_DMA_FLAGS_BUSY; in mxs_dma_enable()
182 struct mxs_dma_chan *pchan; in mxs_dma_disable() local
191 pchan = mxs_dma_channels + channel; in mxs_dma_disable()
193 if (!(pchan->flags & MXS_DMA_FLAGS_BUSY)) in mxs_dma_disable()
199 pchan->flags &= ~MXS_DMA_FLAGS_BUSY; in mxs_dma_disable()
200 pchan->active_num = 0; in mxs_dma_disable()
201 pchan->pending_num = 0; in mxs_dma_disable()
202 list_splice_init(&pchan->active, &pchan->done); in mxs_dma_disable()
284 struct mxs_dma_chan *pchan; in mxs_dma_request() local
289 pchan = mxs_dma_channels + channel; in mxs_dma_request()
290 if ((pchan->flags & MXS_DMA_FLAGS_VALID) != MXS_DMA_FLAGS_VALID) in mxs_dma_request()
293 if (pchan->flags & MXS_DMA_FLAGS_ALLOCATED) in mxs_dma_request()
296 pchan->flags |= MXS_DMA_FLAGS_ALLOCATED; in mxs_dma_request()
297 pchan->active_num = 0; in mxs_dma_request()
298 pchan->pending_num = 0; in mxs_dma_request()
300 INIT_LIST_HEAD(&pchan->active); in mxs_dma_request()
301 INIT_LIST_HEAD(&pchan->done); in mxs_dma_request()
316 struct mxs_dma_chan *pchan; in mxs_dma_release() local
323 pchan = mxs_dma_channels + channel; in mxs_dma_release()
325 if (pchan->flags & MXS_DMA_FLAGS_BUSY) in mxs_dma_release()
328 pchan->dev = 0; in mxs_dma_release()
329 pchan->active_num = 0; in mxs_dma_release()
330 pchan->pending_num = 0; in mxs_dma_release()
331 pchan->flags &= ~MXS_DMA_FLAGS_ALLOCATED; in mxs_dma_release()
408 struct mxs_dma_chan *pchan; in mxs_dma_desc_append() local
416 pchan = mxs_dma_channels + channel; in mxs_dma_desc_append()
421 if (!list_empty(&pchan->active)) { in mxs_dma_desc_append()
422 last = list_entry(pchan->active.prev, struct mxs_dma_desc, in mxs_dma_desc_append()
435 pchan->pending_num++; in mxs_dma_desc_append()
436 list_add_tail(&pdesc->node, &pchan->active); in mxs_dma_desc_append()
457 struct mxs_dma_chan *pchan; in mxs_dma_finish() local
466 pchan = mxs_dma_channels + channel; in mxs_dma_finish()
472 if (sem == pchan->active_num) in mxs_dma_finish()
475 list_for_each_safe(p, q, &pchan->active) { in mxs_dma_finish()
476 if ((pchan->active_num) <= sem) in mxs_dma_finish()
485 list_move_tail(p, &pchan->done); in mxs_dma_finish()
488 pchan->active_num--; in mxs_dma_finish()
492 pchan->flags &= ~MXS_DMA_FLAGS_BUSY; in mxs_dma_finish()
598 struct mxs_dma_chan *pchan; in mxs_dma_init_channel() local
601 pchan = mxs_dma_channels + channel; in mxs_dma_init_channel()
602 pchan->flags = MXS_DMA_FLAGS_VALID; in mxs_dma_init_channel()