Lines Matching defs:uchan

343 static void usb_dmac_soft_reset(struct usb_dmac_chan *uchan)
345 struct dma_chan *chan = &uchan->vc.chan;
351 if (usb_dmac_chan_is_busy(uchan))
383 struct usb_dmac_chan *uchan = to_usb_dmac_chan(chan);
386 while (uchan->descs_allocated < USB_DMAC_INITIAL_NR_DESC) {
387 ret = usb_dmac_desc_alloc(uchan, USB_DMAC_INITIAL_NR_SG,
390 usb_dmac_desc_free(uchan);
393 uchan->descs_allocated++;
401 struct usb_dmac_chan *uchan = to_usb_dmac_chan(chan);
405 spin_lock_irqsave(&uchan->vc.lock, flags);
406 usb_dmac_chan_halt(uchan);
407 spin_unlock_irqrestore(&uchan->vc.lock, flags);
409 usb_dmac_desc_free(uchan);
410 vchan_free_chan_resources(&uchan->vc);
420 struct usb_dmac_chan *uchan = to_usb_dmac_chan(chan);
431 desc = usb_dmac_desc_get(uchan, sg_len, GFP_NOWAIT);
442 return vchan_tx_prep(&uchan->vc, &desc->vd, dma_flags);
447 struct usb_dmac_chan *uchan = to_usb_dmac_chan(chan);
453 spin_lock_irqsave(&uchan->vc.lock, flags);
454 usb_dmac_chan_halt(uchan);
455 vchan_get_all_descriptors(&uchan->vc, &head);
456 if (uchan->desc)
457 uchan->desc = NULL;
458 list_splice_init(&uchan->desc_got, &list);
460 list_move_tail(&desc->node, &uchan->desc_freed);
461 spin_unlock_irqrestore(&uchan->vc.lock, flags);
462 vchan_dma_desc_free_list(&uchan->vc, &head);
532 struct usb_dmac_chan *uchan = to_usb_dmac_chan(chan);
542 spin_lock_irqsave(&uchan->vc.lock, flags);
544 residue = usb_dmac_chan_get_residue_if_complete(uchan, cookie);
546 residue = usb_dmac_chan_get_residue(uchan, cookie);
547 spin_unlock_irqrestore(&uchan->vc.lock, flags);
556 struct usb_dmac_chan *uchan = to_usb_dmac_chan(chan);
559 spin_lock_irqsave(&uchan->vc.lock, flags);
560 if (vchan_issue_pending(&uchan->vc) && !uchan->desc)
561 usb_dmac_chan_start_desc(uchan);
562 spin_unlock_irqrestore(&uchan->vc.lock, flags);
638 struct usb_dmac_chan *uchan = to_usb_dmac_chan(chan);
642 if (uchan->index != dma_spec->args[0])
708 struct usb_dmac_chan *uchan,
716 uchan->index = index;
717 uchan->iomem = dmac->iomem + USB_DMAC_CHAN_OFFSET(index);
721 uchan->irq = platform_get_irq_byname(pdev, pdev_irqname);
722 if (uchan->irq < 0)
730 ret = devm_request_irq(dmac->dev, uchan->irq, usb_dmac_isr_channel,
731 IRQF_SHARED, irqname, uchan);
734 uchan->irq, ret);
738 uchan->vc.desc_free = usb_dmac_virt_desc_free;
739 vchan_init(&uchan->vc, &dmac->engine);
740 INIT_LIST_HEAD(&uchan->desc_freed);
741 INIT_LIST_HEAD(&uchan->desc_got);
865 struct usb_dmac_chan *uchan)
867 usb_dmac_chan_halt(uchan);
868 devm_free_irq(dmac->dev, uchan->irq, uchan);