Lines Matching refs:controller
44 struct ux500_dma_controller *controller; member
55 struct dma_controller controller; member
71 dev_dbg(musb->controller, "DMA rx transfer done on hw_ep=%d\n", in ux500_dma_callback()
94 struct musb *musb = ux500_channel->controller->private_data; in ux500_configure_channel()
96 ux500_channel->controller->phy_base); in ux500_configure_channel()
98 dev_dbg(musb->controller, in ux500_configure_channel()
143 struct ux500_dma_controller *controller = container_of(c, in ux500_dma_channel_allocate() local
144 struct ux500_dma_controller, controller); in ux500_dma_channel_allocate()
146 struct musb *musb = controller->private_data; in ux500_dma_channel_allocate()
159 ux500_channel = is_tx ? &(controller->tx_channel[ch_num]) : in ux500_dma_channel_allocate()
160 &(controller->rx_channel[ch_num]) ; in ux500_dma_channel_allocate()
169 dev_dbg(musb->controller, "hw_ep=%d, is_tx=0x%x, channel=%d\n", in ux500_dma_channel_allocate()
178 struct musb *musb = ux500_channel->controller->private_data; in ux500_dma_channel_release()
180 dev_dbg(musb->controller, "channel=%d\n", ux500_channel->ch_num); in ux500_dma_channel_release()
225 struct ux500_dma_controller *controller = ux500_channel->controller; in ux500_dma_channel_abort() local
226 struct musb *musb = controller->private_data; in ux500_dma_channel_abort()
230 dev_dbg(musb->controller, "channel=%d, is_tx=%d\n", in ux500_dma_channel_abort()
254 static void ux500_dma_controller_stop(struct ux500_dma_controller *controller) in ux500_dma_controller_stop() argument
261 channel = &controller->rx_channel[ch_num].channel; in ux500_dma_controller_stop()
271 channel = &controller->tx_channel[ch_num].channel; in ux500_dma_controller_stop()
281 static int ux500_dma_controller_start(struct ux500_dma_controller *controller) in ux500_dma_controller_start() argument
284 struct musb *musb = controller->private_data; in ux500_dma_controller_start()
285 struct device *dev = musb->controller; in ux500_dma_controller_start()
299 dev_err(musb->controller, "No platform data\n"); in ux500_dma_controller_start()
309 channel_array = controller->rx_channel; in ux500_dma_controller_start()
318 ux500_channel->controller = controller; in ux500_dma_controller_start()
345 ux500_dma_controller_stop(controller); in ux500_dma_controller_start()
353 channel_array = controller->tx_channel; in ux500_dma_controller_start()
364 struct ux500_dma_controller *controller = container_of(c, in ux500_dma_controller_destroy() local
365 struct ux500_dma_controller, controller); in ux500_dma_controller_destroy()
367 ux500_dma_controller_stop(controller); in ux500_dma_controller_destroy()
368 kfree(controller); in ux500_dma_controller_destroy()
375 struct ux500_dma_controller *controller; in ux500_dma_controller_create() local
376 struct platform_device *pdev = to_platform_device(musb->controller); in ux500_dma_controller_create()
380 controller = kzalloc(sizeof(*controller), GFP_KERNEL); in ux500_dma_controller_create()
381 if (!controller) in ux500_dma_controller_create()
384 controller->private_data = musb; in ux500_dma_controller_create()
389 dev_err(musb->controller, "no memory resource defined\n"); in ux500_dma_controller_create()
393 controller->phy_base = (dma_addr_t) iomem->start; in ux500_dma_controller_create()
395 controller->controller.channel_alloc = ux500_dma_channel_allocate; in ux500_dma_controller_create()
396 controller->controller.channel_release = ux500_dma_channel_release; in ux500_dma_controller_create()
397 controller->controller.channel_program = ux500_dma_channel_program; in ux500_dma_controller_create()
398 controller->controller.channel_abort = ux500_dma_channel_abort; in ux500_dma_controller_create()
399 controller->controller.is_compatible = ux500_dma_is_compatible; in ux500_dma_controller_create()
401 ret = ux500_dma_controller_start(controller); in ux500_dma_controller_create()
404 return &controller->controller; in ux500_dma_controller_create()
407 kfree(controller); in ux500_dma_controller_create()