Lines Matching refs:controller
27 struct cppi41_dma_controller *controller; member
48 struct dma_controller controller; member
66 if (!is_host_active(cppi41_channel->controller->musb)) in save_rx_toggle()
99 dev_dbg(cppi41_channel->controller->musb->controller, in update_rx_toggle()
189 struct cppi41_dma_controller *controller; in cppi41_recheck_tx_req() local
195 controller = container_of(timer, struct cppi41_dma_controller, in cppi41_recheck_tx_req()
197 musb = controller->musb; in cppi41_recheck_tx_req()
200 list_for_each_entry_safe(cppi41_channel, n, &controller->early_tx_list, in cppi41_recheck_tx_req()
212 if (!list_empty(&controller->early_tx_list) && in cppi41_recheck_tx_req()
213 !hrtimer_is_queued(&controller->early_tx)) { in cppi41_recheck_tx_req()
215 hrtimer_forward_now(&controller->early_tx, in cppi41_recheck_tx_req()
228 struct cppi41_dma_controller *controller; in cppi41_dma_callback() local
243 dev_dbg(musb->controller, "DMA transfer done on hw_ep=%d bytes=%d/%d\n", in cppi41_dma_callback()
271 controller = cppi41_channel->controller; in cppi41_dma_callback()
296 &controller->early_tx_list); in cppi41_dma_callback()
297 if (!hrtimer_is_queued(&controller->early_tx)) { in cppi41_dma_callback()
300 hrtimer_start_range_ns(&controller->early_tx, in cppi41_dma_callback()
323 struct cppi41_dma_controller *controller = cppi41_channel->controller; in cppi41_set_dma_mode() local
329 old_mode = controller->tx_mode; in cppi41_set_dma_mode()
331 old_mode = controller->rx_mode; in cppi41_set_dma_mode()
338 controller->tx_mode = new_mode; in cppi41_set_dma_mode()
339 musb_writel(controller->musb->ctrl_base, USB_CTRL_TX_MODE, in cppi41_set_dma_mode()
342 controller->rx_mode = new_mode; in cppi41_set_dma_mode()
343 musb_writel(controller->musb->ctrl_base, USB_CTRL_RX_MODE, in cppi41_set_dma_mode()
351 struct cppi41_dma_controller *controller = cppi41_channel->controller; in cppi41_set_autoreq_mode() local
356 old_mode = controller->auto_req; in cppi41_set_autoreq_mode()
362 controller->auto_req = new_mode; in cppi41_set_autoreq_mode()
363 musb_writel(controller->musb->ctrl_base, USB_CTRL_AUTOREQ, new_mode); in cppi41_set_autoreq_mode()
374 struct musb *musb = cppi41_channel->controller->musb; in cppi41_configure_channel()
377 dev_dbg(musb->controller, in cppi41_configure_channel()
442 struct cppi41_dma_controller *controller = container_of(c, in cppi41_dma_channel_allocate() local
443 struct cppi41_dma_controller, controller); in cppi41_dma_channel_allocate()
451 cppi41_channel = &controller->tx_channel[ch_num]; in cppi41_dma_channel_allocate()
453 cppi41_channel = &controller->rx_channel[ch_num]; in cppi41_dma_channel_allocate()
489 if (is_host_active(cppi41_channel->controller->musb)) { in cppi41_dma_channel_program()
513 struct cppi41_dma_controller *controller = cppi41_channel->controller; in cppi41_is_compatible() local
514 struct musb *musb = controller->musb; in cppi41_is_compatible()
531 struct cppi41_dma_controller *controller = cppi41_channel->controller; in cppi41_dma_channel_abort() local
532 struct musb *musb = controller->musb; in cppi41_dma_channel_abort()
540 dev_dbg(musb->controller, "abort channel=%d, is_tx=%d\n", in cppi41_dma_channel_abort()
611 static void cppi41_dma_controller_stop(struct cppi41_dma_controller *controller) in cppi41_dma_controller_stop() argument
613 cppi41_release_all_dma_chans(controller); in cppi41_dma_controller_stop()
616 static int cppi41_dma_controller_start(struct cppi41_dma_controller *controller) in cppi41_dma_controller_start() argument
618 struct musb *musb = controller->musb; in cppi41_dma_controller_start()
619 struct device *dev = musb->controller; in cppi41_dma_controller_start()
656 cppi41_channel = &controller->tx_channel[port - 1]; in cppi41_dma_controller_start()
658 cppi41_channel = &controller->rx_channel[port - 1]; in cppi41_dma_controller_start()
660 cppi41_channel->controller = controller; in cppi41_dma_controller_start()
680 cppi41_release_all_dma_chans(controller); in cppi41_dma_controller_start()
686 struct cppi41_dma_controller *controller = container_of(c, in cppi41_dma_controller_destroy() local
687 struct cppi41_dma_controller, controller); in cppi41_dma_controller_destroy()
689 hrtimer_cancel(&controller->early_tx); in cppi41_dma_controller_destroy()
690 cppi41_dma_controller_stop(controller); in cppi41_dma_controller_destroy()
691 kfree(controller); in cppi41_dma_controller_destroy()
698 struct cppi41_dma_controller *controller; in cppi41_dma_controller_create() local
701 if (!musb->controller->parent->of_node) { in cppi41_dma_controller_create()
702 dev_err(musb->controller, "Need DT for the DMA engine.\n"); in cppi41_dma_controller_create()
706 controller = kzalloc(sizeof(*controller), GFP_KERNEL); in cppi41_dma_controller_create()
707 if (!controller) in cppi41_dma_controller_create()
710 hrtimer_init(&controller->early_tx, CLOCK_MONOTONIC, HRTIMER_MODE_REL); in cppi41_dma_controller_create()
711 controller->early_tx.function = cppi41_recheck_tx_req; in cppi41_dma_controller_create()
712 INIT_LIST_HEAD(&controller->early_tx_list); in cppi41_dma_controller_create()
713 controller->musb = musb; in cppi41_dma_controller_create()
715 controller->controller.channel_alloc = cppi41_dma_channel_allocate; in cppi41_dma_controller_create()
716 controller->controller.channel_release = cppi41_dma_channel_release; in cppi41_dma_controller_create()
717 controller->controller.channel_program = cppi41_dma_channel_program; in cppi41_dma_controller_create()
718 controller->controller.channel_abort = cppi41_dma_channel_abort; in cppi41_dma_controller_create()
719 controller->controller.is_compatible = cppi41_is_compatible; in cppi41_dma_controller_create()
721 ret = cppi41_dma_controller_start(controller); in cppi41_dma_controller_create()
724 return &controller->controller; in cppi41_dma_controller_create()
727 kfree(controller); in cppi41_dma_controller_create()