Lines Matching refs:channel

40 static void dma_channel_release(struct dma_channel *channel);
45 struct dma_channel *channel; in dma_controller_stop() local
54 channel = &controller->channel[bit].channel; in dma_controller_stop()
55 dma_channel_release(channel); in dma_controller_stop()
70 struct dma_channel *channel = NULL; in dma_channel_allocate() local
76 musb_channel = &(controller->channel[bit]); in dma_channel_allocate()
81 channel = &(musb_channel->channel); in dma_channel_allocate()
82 channel->private_data = musb_channel; in dma_channel_allocate()
83 channel->status = MUSB_DMA_STATUS_FREE; in dma_channel_allocate()
84 channel->max_len = 0x100000; in dma_channel_allocate()
86 channel->desired_mode = transmit; in dma_channel_allocate()
87 channel->actual_len = 0; in dma_channel_allocate()
92 return channel; in dma_channel_allocate()
95 static void dma_channel_release(struct dma_channel *channel) in dma_channel_release() argument
97 struct musb_dma_channel *musb_channel = channel->private_data; in dma_channel_release()
99 channel->actual_len = 0; in dma_channel_release()
106 channel->status = MUSB_DMA_STATUS_UNKNOWN; in dma_channel_release()
109 static void configure_channel(struct dma_channel *channel, in configure_channel() argument
113 struct musb_dma_channel *musb_channel = channel->private_data; in configure_channel()
121 channel, packet_sz, dma_addr, len, mode); in configure_channel()
147 static int dma_channel_program(struct dma_channel *channel, in dma_channel_program() argument
151 struct musb_dma_channel *musb_channel = channel->private_data; in dma_channel_program()
160 BUG_ON(channel->status == MUSB_DMA_STATUS_UNKNOWN || in dma_channel_program()
161 channel->status == MUSB_DMA_STATUS_BUSY); in dma_channel_program()
165 int ret = musb->ops->adjust_channel_params(channel, in dma_channel_program()
183 channel->actual_len = 0; in dma_channel_program()
187 channel->status = MUSB_DMA_STATUS_BUSY; in dma_channel_program()
189 configure_channel(channel, packet_sz, mode, dma_addr, len); in dma_channel_program()
194 static int dma_channel_abort(struct dma_channel *channel) in dma_channel_abort() argument
196 struct musb_dma_channel *musb_channel = channel->private_data; in dma_channel_abort()
204 if (channel->status == MUSB_DMA_STATUS_BUSY) { in dma_channel_abort()
234 channel->status = MUSB_DMA_STATUS_FREE; in dma_channel_abort()
245 struct dma_channel *channel; in dma_controller_irq() local
273 &(controller->channel[bchannel]); in dma_controller_irq()
274 channel = &musb_channel->channel; in dma_controller_irq()
275 if (channel->status == MUSB_DMA_STATUS_BUSY) { in dma_controller_irq()
292 &(controller->channel[bchannel]); in dma_controller_irq()
293 channel = &musb_channel->channel; in dma_controller_irq()
300 musb_channel->channel.status = in dma_controller_irq()
307 channel->actual_len = addr in dma_controller_irq()
311 channel, musb_channel->start_addr, in dma_controller_irq()
312 addr, channel->actual_len, in dma_controller_irq()
314 (channel->actual_len in dma_controller_irq()
320 channel->status = MUSB_DMA_STATUS_FREE; in dma_controller_irq()
325 && ((channel->desired_mode == 0) in dma_controller_irq()
326 || (channel->actual_len & in dma_controller_irq()