Lines Matching refs:channel
43 struct dma_channel channel; member
65 struct dma_channel *channel = private_data; in ux500_dma_callback() local
66 struct ux500_dma_channel *ux500_channel = channel->private_data; in ux500_dma_callback()
75 ux500_channel->channel.actual_len = ux500_channel->cur_len; in ux500_dma_callback()
76 ux500_channel->channel.status = MUSB_DMA_STATUS_FREE; in ux500_dma_callback()
82 static bool ux500_configure_channel(struct dma_channel *channel, in ux500_configure_channel() argument
86 struct ux500_dma_channel *ux500_channel = channel->private_data; in ux500_configure_channel()
132 dma_desc->callback_param = channel; in ux500_configure_channel()
172 return &(ux500_channel->channel); in ux500_dma_channel_allocate()
175 static void ux500_dma_channel_release(struct dma_channel *channel) in ux500_dma_channel_release() argument
177 struct ux500_dma_channel *ux500_channel = channel->private_data; in ux500_dma_channel_release()
184 channel->status = MUSB_DMA_STATUS_FREE; in ux500_dma_channel_release()
185 channel->actual_len = 0; in ux500_dma_channel_release()
189 static int ux500_dma_is_compatible(struct dma_channel *channel, in ux500_dma_is_compatible() argument
201 static int ux500_dma_channel_program(struct dma_channel *channel, in ux500_dma_channel_program() argument
207 BUG_ON(channel->status == MUSB_DMA_STATUS_UNKNOWN || in ux500_dma_channel_program()
208 channel->status == MUSB_DMA_STATUS_BUSY); in ux500_dma_channel_program()
210 if (!ux500_dma_is_compatible(channel, packet_sz, (void *)dma_addr, len)) in ux500_dma_channel_program()
213 channel->status = MUSB_DMA_STATUS_BUSY; in ux500_dma_channel_program()
214 channel->actual_len = 0; in ux500_dma_channel_program()
215 ret = ux500_configure_channel(channel, packet_sz, mode, dma_addr, len); in ux500_dma_channel_program()
217 channel->status = MUSB_DMA_STATUS_FREE; in ux500_dma_channel_program()
222 static int ux500_dma_channel_abort(struct dma_channel *channel) in ux500_dma_channel_abort() argument
224 struct ux500_dma_channel *ux500_channel = channel->private_data; in ux500_dma_channel_abort()
233 if (channel->status == MUSB_DMA_STATUS_BUSY) { in ux500_dma_channel_abort()
249 channel->status = MUSB_DMA_STATUS_FREE; in ux500_dma_channel_abort()
257 struct dma_channel *channel; in ux500_dma_controller_stop() local
261 channel = &controller->rx_channel[ch_num].channel; in ux500_dma_controller_stop()
262 ux500_channel = channel->private_data; in ux500_dma_controller_stop()
264 ux500_dma_channel_release(channel); in ux500_dma_controller_stop()
271 channel = &controller->tx_channel[ch_num].channel; in ux500_dma_controller_stop()
272 ux500_channel = channel->private_data; in ux500_dma_controller_stop()
274 ux500_dma_channel_release(channel); in ux500_dma_controller_stop()
322 dma_channel = &(ux500_channel->channel); in ux500_dma_controller_start()