Lines Matching refs:controller
42 static void dma_controller_stop(struct musb_dma_controller *controller) in dma_controller_stop() argument
44 struct musb *musb = controller->private_data; in dma_controller_stop()
48 if (controller->used_channels != 0) { in dma_controller_stop()
49 dev_err(musb->controller, in dma_controller_stop()
53 if (controller->used_channels & (1 << bit)) { in dma_controller_stop()
54 channel = &controller->channel[bit].channel; in dma_controller_stop()
57 if (!controller->used_channels) in dma_controller_stop()
67 struct musb_dma_controller *controller = container_of(c, in dma_channel_allocate() local
68 struct musb_dma_controller, controller); in dma_channel_allocate()
74 if (!(controller->used_channels & (1 << bit))) { in dma_channel_allocate()
75 controller->used_channels |= (1 << bit); in dma_channel_allocate()
76 musb_channel = &(controller->channel[bit]); in dma_channel_allocate()
77 musb_channel->controller = controller; in dma_channel_allocate()
103 musb_channel->controller->used_channels &= in dma_channel_release()
114 struct musb_dma_controller *controller = musb_channel->controller; in configure_channel() local
115 struct musb *musb = controller->private_data; in configure_channel()
116 void __iomem *mbase = controller->base; in configure_channel()
120 dev_dbg(musb->controller, "%p, pkt_sz %d, addr 0x%x, len %d, mode %d\n", in configure_channel()
152 struct musb_dma_controller *controller = musb_channel->controller; in dma_channel_program() local
153 struct musb *musb = controller->private_data; in dma_channel_program()
155 dev_dbg(musb->controller, "ep%d-%s pkt_sz %d, dma_addr 0x%x length %d, mode %d\n", in dma_channel_program()
197 void __iomem *mbase = musb_channel->controller->base; in dma_channel_abort()
198 struct musb *musb = musb_channel->controller->private_data; in dma_channel_abort()
242 struct musb_dma_controller *controller = private_data; in dma_controller_irq() local
243 struct musb *musb = controller->private_data; in dma_controller_irq()
247 void __iomem *mbase = controller->base; in dma_controller_irq()
269 dev_dbg(musb->controller, "spurious DMA irq\n"); in dma_controller_irq()
273 &(controller->channel[bchannel]); in dma_controller_irq()
283 dev_dbg(musb->controller, "int_hsdma = 0x%x\n", int_hsdma); in dma_controller_irq()
292 &(controller->channel[bchannel]); in dma_controller_irq()
310 dev_dbg(musb->controller, "ch %p, 0x%x -> 0x%x (%zu / %d) %s\n", in dma_controller_irq()
362 struct musb_dma_controller *controller = container_of(c, in dma_controller_destroy() local
363 struct musb_dma_controller, controller); in dma_controller_destroy()
365 dma_controller_stop(controller); in dma_controller_destroy()
367 if (controller->irq) in dma_controller_destroy()
368 free_irq(controller->irq, c); in dma_controller_destroy()
370 kfree(controller); in dma_controller_destroy()
375 struct musb_dma_controller *controller; in dma_controller_create() local
376 struct device *dev = musb->controller; in dma_controller_create()
385 controller = kzalloc(sizeof(*controller), GFP_KERNEL); in dma_controller_create()
386 if (!controller) in dma_controller_create()
389 controller->channel_count = MUSB_HSDMA_CHANNELS; in dma_controller_create()
390 controller->private_data = musb; in dma_controller_create()
391 controller->base = base; in dma_controller_create()
393 controller->controller.channel_alloc = dma_channel_allocate; in dma_controller_create()
394 controller->controller.channel_release = dma_channel_release; in dma_controller_create()
395 controller->controller.channel_program = dma_channel_program; in dma_controller_create()
396 controller->controller.channel_abort = dma_channel_abort; in dma_controller_create()
399 dev_name(musb->controller), &controller->controller)) { in dma_controller_create()
401 dma_controller_destroy(&controller->controller); in dma_controller_create()
406 controller->irq = irq; in dma_controller_create()
408 return &controller->controller; in dma_controller_create()