Lines Matching refs:uchan

346 static void usb_dmac_soft_reset(struct usb_dmac_chan *uchan)  in usb_dmac_soft_reset()  argument
348 struct dma_chan *chan = &uchan->vc.chan; in usb_dmac_soft_reset()
354 if (usb_dmac_chan_is_busy(uchan)) in usb_dmac_soft_reset()
386 struct usb_dmac_chan *uchan = to_usb_dmac_chan(chan); in usb_dmac_alloc_chan_resources() local
389 while (uchan->descs_allocated < USB_DMAC_INITIAL_NR_DESC) { in usb_dmac_alloc_chan_resources()
390 ret = usb_dmac_desc_alloc(uchan, USB_DMAC_INITIAL_NR_SG, in usb_dmac_alloc_chan_resources()
393 usb_dmac_desc_free(uchan); in usb_dmac_alloc_chan_resources()
396 uchan->descs_allocated++; in usb_dmac_alloc_chan_resources()
404 struct usb_dmac_chan *uchan = to_usb_dmac_chan(chan); in usb_dmac_free_chan_resources() local
408 spin_lock_irqsave(&uchan->vc.lock, flags); in usb_dmac_free_chan_resources()
409 usb_dmac_chan_halt(uchan); in usb_dmac_free_chan_resources()
410 spin_unlock_irqrestore(&uchan->vc.lock, flags); in usb_dmac_free_chan_resources()
412 usb_dmac_desc_free(uchan); in usb_dmac_free_chan_resources()
413 vchan_free_chan_resources(&uchan->vc); in usb_dmac_free_chan_resources()
423 struct usb_dmac_chan *uchan = to_usb_dmac_chan(chan); in usb_dmac_prep_slave_sg() local
434 desc = usb_dmac_desc_get(uchan, sg_len, GFP_NOWAIT); in usb_dmac_prep_slave_sg()
445 return vchan_tx_prep(&uchan->vc, &desc->vd, dma_flags); in usb_dmac_prep_slave_sg()
450 struct usb_dmac_chan *uchan = to_usb_dmac_chan(chan); in usb_dmac_chan_terminate_all() local
456 spin_lock_irqsave(&uchan->vc.lock, flags); in usb_dmac_chan_terminate_all()
457 usb_dmac_chan_halt(uchan); in usb_dmac_chan_terminate_all()
458 vchan_get_all_descriptors(&uchan->vc, &head); in usb_dmac_chan_terminate_all()
459 if (uchan->desc) in usb_dmac_chan_terminate_all()
460 uchan->desc = NULL; in usb_dmac_chan_terminate_all()
461 list_splice_init(&uchan->desc_got, &list); in usb_dmac_chan_terminate_all()
463 list_move_tail(&desc->node, &uchan->desc_freed); in usb_dmac_chan_terminate_all()
464 spin_unlock_irqrestore(&uchan->vc.lock, flags); in usb_dmac_chan_terminate_all()
465 vchan_dma_desc_free_list(&uchan->vc, &head); in usb_dmac_chan_terminate_all()
535 struct usb_dmac_chan *uchan = to_usb_dmac_chan(chan); in usb_dmac_tx_status() local
545 spin_lock_irqsave(&uchan->vc.lock, flags); in usb_dmac_tx_status()
547 residue = usb_dmac_chan_get_residue_if_complete(uchan, cookie); in usb_dmac_tx_status()
549 residue = usb_dmac_chan_get_residue(uchan, cookie); in usb_dmac_tx_status()
550 spin_unlock_irqrestore(&uchan->vc.lock, flags); in usb_dmac_tx_status()
559 struct usb_dmac_chan *uchan = to_usb_dmac_chan(chan); in usb_dmac_issue_pending() local
562 spin_lock_irqsave(&uchan->vc.lock, flags); in usb_dmac_issue_pending()
563 if (vchan_issue_pending(&uchan->vc) && !uchan->desc) in usb_dmac_issue_pending()
564 usb_dmac_chan_start_desc(uchan); in usb_dmac_issue_pending()
565 spin_unlock_irqrestore(&uchan->vc.lock, flags); in usb_dmac_issue_pending()
636 struct usb_dmac_chan *uchan = to_usb_dmac_chan(chan); in usb_dmac_chan_filter() local
643 if (uchan->index != dma_spec->args[0]) in usb_dmac_chan_filter()
652 struct usb_dmac_chan *uchan; in usb_dmac_of_xlate() local
667 uchan = to_usb_dmac_chan(chan); in usb_dmac_of_xlate()
706 struct usb_dmac_chan *uchan, in usb_dmac_chan_probe() argument
714 uchan->index = index; in usb_dmac_chan_probe()
715 uchan->iomem = dmac->iomem + USB_DMAC_CHAN_OFFSET(index); in usb_dmac_chan_probe()
719 uchan->irq = platform_get_irq_byname(pdev, pdev_irqname); in usb_dmac_chan_probe()
720 if (uchan->irq < 0) { in usb_dmac_chan_probe()
730 ret = devm_request_irq(dmac->dev, uchan->irq, usb_dmac_isr_channel, in usb_dmac_chan_probe()
731 IRQF_SHARED, irqname, uchan); in usb_dmac_chan_probe()
734 uchan->irq, ret); in usb_dmac_chan_probe()
738 uchan->vc.desc_free = usb_dmac_virt_desc_free; in usb_dmac_chan_probe()
739 vchan_init(&uchan->vc, &dmac->engine); in usb_dmac_chan_probe()
740 INIT_LIST_HEAD(&uchan->desc_freed); in usb_dmac_chan_probe()
741 INIT_LIST_HEAD(&uchan->desc_got); in usb_dmac_chan_probe()
863 struct usb_dmac_chan *uchan) in usb_dmac_chan_remove() argument
865 usb_dmac_chan_halt(uchan); in usb_dmac_chan_remove()
866 devm_free_irq(dmac->dev, uchan->irq, uchan); in usb_dmac_chan_remove()