Lines Matching refs:tusb_dma

46 	struct tusb_omap_dma	*tusb_dma;  member
111 struct tusb_omap_dma *tusb_dma = chdat->tusb_dma; in tusb_omap_dma_cb() local
122 if (tusb_dma->multichannel) in tusb_omap_dma_cb()
125 ch = tusb_dma->ch; in tusb_omap_dma_cb()
174 if (!tusb_dma->multichannel) in tusb_omap_dma_cb()
212 struct tusb_omap_dma *tusb_dma = chdat->tusb_dma; in tusb_omap_dma_program() local
264 if (tusb_dma->multichannel) { in tusb_omap_dma_program()
273 if (tusb_dma->ch < 0) { in tusb_omap_dma_program()
281 ch = tusb_dma->ch; in tusb_omap_dma_program()
282 dmareq = tusb_dma->dmareq; in tusb_omap_dma_program()
283 sync_dev = tusb_dma->sync_dev; in tusb_omap_dma_program()
414 struct tusb_omap_dma *tusb_dma = chdat->tusb_dma; in tusb_omap_dma_abort() local
416 if (!tusb_dma->multichannel) { in tusb_omap_dma_abort()
417 if (tusb_dma->ch >= 0) { in tusb_omap_dma_abort()
418 omap_stop_dma(tusb_dma->ch); in tusb_omap_dma_abort()
419 omap_free_dma(tusb_dma->ch); in tusb_omap_dma_abort()
420 tusb_dma->ch = -1; in tusb_omap_dma_abort()
423 tusb_dma->dmareq = -1; in tusb_omap_dma_abort()
424 tusb_dma->sync_dev = -1; in tusb_omap_dma_abort()
492 struct tusb_omap_dma *tusb_dma; in tusb_omap_dma_allocate() local
499 tusb_dma = container_of(c, struct tusb_omap_dma, controller); in tusb_omap_dma_allocate()
500 musb = tusb_dma->musb; in tusb_omap_dma_allocate()
537 chdat->musb = tusb_dma->musb; in tusb_omap_dma_allocate()
538 chdat->tbase = tusb_dma->tbase; in tusb_omap_dma_allocate()
543 chdat->tusb_dma = tusb_dma; in tusb_omap_dma_allocate()
549 if (tusb_dma->multichannel) { in tusb_omap_dma_allocate()
558 } else if (tusb_dma->ch == -1) { in tusb_omap_dma_allocate()
559 tusb_dma->dmareq = 0; in tusb_omap_dma_allocate()
560 tusb_dma->sync_dev = OMAP24XX_DMA_EXT_DMAREQ0; in tusb_omap_dma_allocate()
563 ret = omap_request_dma(tusb_dma->sync_dev, "TUSB shared", in tusb_omap_dma_allocate()
564 tusb_omap_dma_cb, NULL, &tusb_dma->ch); in tusb_omap_dma_allocate()
576 chdat->ch >= 0 ? chdat->ch : tusb_dma->ch, in tusb_omap_dma_allocate()
577 chdat->dmareq >= 0 ? chdat->dmareq : tusb_dma->dmareq, in tusb_omap_dma_allocate()
578 chdat->sync_dev >= 0 ? chdat->sync_dev : tusb_dma->sync_dev); in tusb_omap_dma_allocate()
630 struct tusb_omap_dma *tusb_dma; in tusb_dma_controller_destroy() local
633 tusb_dma = container_of(c, struct tusb_omap_dma, controller); in tusb_dma_controller_destroy()
642 if (tusb_dma && !tusb_dma->multichannel && tusb_dma->ch >= 0) in tusb_dma_controller_destroy()
643 omap_free_dma(tusb_dma->ch); in tusb_dma_controller_destroy()
645 kfree(tusb_dma); in tusb_dma_controller_destroy()
653 struct tusb_omap_dma *tusb_dma; in tusb_dma_controller_create() local
666 tusb_dma = kzalloc(sizeof(struct tusb_omap_dma), GFP_KERNEL); in tusb_dma_controller_create()
667 if (!tusb_dma) in tusb_dma_controller_create()
670 tusb_dma->musb = musb; in tusb_dma_controller_create()
671 tusb_dma->tbase = musb->ctrl_base; in tusb_dma_controller_create()
673 tusb_dma->ch = -1; in tusb_dma_controller_create()
674 tusb_dma->dmareq = -1; in tusb_dma_controller_create()
675 tusb_dma->sync_dev = -1; in tusb_dma_controller_create()
677 tusb_dma->controller.channel_alloc = tusb_omap_dma_allocate; in tusb_dma_controller_create()
678 tusb_dma->controller.channel_release = tusb_omap_dma_release; in tusb_dma_controller_create()
679 tusb_dma->controller.channel_program = tusb_omap_dma_program; in tusb_dma_controller_create()
680 tusb_dma->controller.channel_abort = tusb_omap_dma_abort; in tusb_dma_controller_create()
683 tusb_dma->multichannel = 1; in tusb_dma_controller_create()
703 return &tusb_dma->controller; in tusb_dma_controller_create()
706 musb_dma_controller_destroy(&tusb_dma->controller); in tusb_dma_controller_create()