Lines Matching refs:channel
46 static void dma_channel_release(struct dma_channel *channel);
53 struct dma_channel *channel; in dma_controller_stop() local
62 channel = &controller->channel[bit].channel; in dma_controller_stop()
63 dma_channel_release(channel); in dma_controller_stop()
80 struct dma_channel *channel = NULL; in dma_channel_allocate() local
86 musb_channel = &(controller->channel[bit]); in dma_channel_allocate()
91 channel = &(musb_channel->channel); in dma_channel_allocate()
92 channel->private_data = musb_channel; in dma_channel_allocate()
93 channel->status = MUSB_DMA_STATUS_FREE; in dma_channel_allocate()
94 channel->max_len = 0x100000; in dma_channel_allocate()
96 channel->desired_mode = transmit; in dma_channel_allocate()
97 channel->actual_len = 0; in dma_channel_allocate()
102 return channel; in dma_channel_allocate()
105 static void dma_channel_release(struct dma_channel *channel) in dma_channel_release() argument
107 struct musb_dma_channel *musb_channel = channel->private_data; in dma_channel_release()
109 channel->actual_len = 0; in dma_channel_release()
116 channel->status = MUSB_DMA_STATUS_UNKNOWN; in dma_channel_release()
119 static void configure_channel(struct dma_channel *channel, in configure_channel() argument
123 struct musb_dma_channel *musb_channel = channel->private_data; in configure_channel()
131 channel, packet_sz, dma_addr, len, mode); in configure_channel()
157 static int dma_channel_program(struct dma_channel *channel, in dma_channel_program() argument
161 struct musb_dma_channel *musb_channel = channel->private_data; in dma_channel_program()
170 BUG_ON(channel->status == MUSB_DMA_STATUS_UNKNOWN || in dma_channel_program()
171 channel->status == MUSB_DMA_STATUS_BUSY); in dma_channel_program()
175 int ret = musb->ops->adjust_channel_params(channel, in dma_channel_program()
193 channel->actual_len = 0; in dma_channel_program()
197 channel->status = MUSB_DMA_STATUS_BUSY; in dma_channel_program()
199 configure_channel(channel, packet_sz, mode, dma_addr, len); in dma_channel_program()
204 static int dma_channel_abort(struct dma_channel *channel) in dma_channel_abort() argument
206 struct musb_dma_channel *musb_channel = channel->private_data; in dma_channel_abort()
213 if (channel->status == MUSB_DMA_STATUS_BUSY) { in dma_channel_abort()
243 channel->status = MUSB_DMA_STATUS_FREE; in dma_channel_abort()
254 struct dma_channel *channel; in dma_controller_irq() local
282 &(controller->channel[bchannel]); in dma_controller_irq()
283 channel = &musb_channel->channel; in dma_controller_irq()
284 if (channel->status == MUSB_DMA_STATUS_BUSY) { in dma_controller_irq()
301 &(controller->channel[bchannel]); in dma_controller_irq()
302 channel = &musb_channel->channel; in dma_controller_irq()
309 musb_channel->channel.status = in dma_controller_irq()
316 channel->actual_len = addr in dma_controller_irq()
320 channel, musb_channel->start_addr, in dma_controller_irq()
321 addr, channel->actual_len, in dma_controller_irq()
323 (channel->actual_len in dma_controller_irq()
329 channel->status = MUSB_DMA_STATUS_FREE; in dma_controller_irq()
334 && ((channel->desired_mode == 0) in dma_controller_irq()
335 || (channel->actual_len & in dma_controller_irq()