Lines Matching refs:dma
65 * IN dma behaves ok under testing, though the IN-dma abort paths don't
68 * OUT dma documents design problems handling the common "short packet"
70 * if the OUT-dma abort problems had a resolution.
133 /* ep1/ep2 dma direction is chosen early; it works in the other
134 * direction, with pio. be cautious with out-dma.
139 ep->dma = (use_dma != 0) && (ep->num == UDC_MSTRD_ENDPOINT);
141 ep->dma = (use_dma == 2) && (ep->num == UDC_MSTWR_ENDPOINT);
142 if (ep->dma)
143 DBG(dev, "%s out-dma hides short packets\n",
149 /* ep1 and ep2 can do double buffering and/or dma */
155 tmp = ((ep->dma || !ep->is_in)
162 tmp = (ep->dma ? 0x10/*dma*/ : 0x11/*pio*/) << ep->num;
175 ep->dma ? "dma" : "pio",
210 /* reset dma in case we're still using it */
211 if (ep->dma) {
230 ep->dma = 0;
269 req->req.dma = DMA_ADDR_INVALID;
304 pci_unmap_single(dev->pdev, req->req.dma, req->req.length,
306 req->req.dma = DMA_ADDR_INVALID;
526 u32 start = req->req.dma;
531 /* re-init the bits affecting IN dma; careful with zlps */
534 DBG (ep->dev, "start, IN active dma %03x!!\n",
559 DBG (ep->dev, "start, OUT active dma %03x!!\n",
596 /* normal hw dma completion (not abort) */
610 req->req.actual -= req->req.dma;
614 VDBG(dev, "done %s %s dma, %u/%u bytes, req %p\n",
632 * dma engine finish reading (or writing) its latest packet and
633 * empty the dma buffer (up to 16 bytes).
655 DBG(ep->dev, "IN dma active after reset!\n");
670 DBG(ep->dev, "OUT dma active after reset!\n");
672 req->req.actual = (curr - req->req.dma) + 1;
684 /* dma already completed; no abort needed */
717 /* set up dma mapping in case the caller didn't */
718 if (ep->dma && _req->dma == DMA_ADDR_INVALID) {
719 _req->dma = pci_map_single(dev->pdev, _req->buf, _req->length,
743 /* dma: done after dma completion IRQ (or error)
746 if (ep->dma)
757 } /* else pio or dma irq handler advances the queue. */
764 && !ep->dma
782 if (ep->dma)
805 /* we can't touch (dma) registers when suspended */
811 ep->dma ? "dma" : "pio",
826 if (ep->dma && ep->queue.next == &req->queue && !ep->stopped) {
849 if (ep->dma) {
919 /* ignores 16-byte dma buffer; SizeH == 0 */
950 * the bytes out (PIO, if !ep->dma); for in, no choice.
989 return "(dma disabled)";
991 return "(dma IN and OUT)";
993 return "(dma IN)";
1014 (mask & INT_MSTRDEND) ? " in-dma" : "",
1017 (mask & INT_MSTWREND) ? " out-dma" : "",
1107 "dma %03X =" EIGHTBITS "%s %s\n", tmp,
1140 ep->dma ? "dma" : "pio",
1182 if (ep->dma && req->queue.prev == &ep->queue) {
1187 tmp -= req->req.dma;
1643 /* dma completion */
1661 // reset dma? then dma_advance()