Lines Matching refs:dmatx
169 struct pl011_dmatx_data dmatx; member
310 uap->dmatx.chan = chan; in pl011_dma_probe()
313 dma_chan_name(uap->dmatx.chan)); in pl011_dma_probe()
400 if (uap->dmatx.chan) in pl011_dma_remove()
401 dma_release_channel(uap->dmatx.chan); in pl011_dma_remove()
417 struct pl011_dmatx_data *dmatx = &uap->dmatx; in pl011_dma_tx_callback() local
422 if (uap->dmatx.queued) in pl011_dma_tx_callback()
423 dma_unmap_sg(dmatx->chan->device->dev, &dmatx->sg, 1, in pl011_dma_tx_callback()
441 uap->dmatx.queued = false; in pl011_dma_tx_callback()
466 struct pl011_dmatx_data *dmatx = &uap->dmatx; in pl011_dma_tx_refill() local
467 struct dma_chan *chan = dmatx->chan; in pl011_dma_tx_refill()
481 uap->dmatx.queued = false; in pl011_dma_tx_refill()
496 memcpy(&dmatx->buf[0], &xmit->buf[xmit->tail], count); in pl011_dma_tx_refill()
505 memcpy(&dmatx->buf[0], &xmit->buf[xmit->tail], first); in pl011_dma_tx_refill()
507 memcpy(&dmatx->buf[first], &xmit->buf[0], second); in pl011_dma_tx_refill()
510 dmatx->sg.length = count; in pl011_dma_tx_refill()
512 if (dma_map_sg(dma_dev->dev, &dmatx->sg, 1, DMA_TO_DEVICE) != 1) { in pl011_dma_tx_refill()
513 uap->dmatx.queued = false; in pl011_dma_tx_refill()
518 desc = dmaengine_prep_slave_sg(chan, &dmatx->sg, 1, DMA_MEM_TO_DEV, in pl011_dma_tx_refill()
521 dma_unmap_sg(dma_dev->dev, &dmatx->sg, 1, DMA_TO_DEVICE); in pl011_dma_tx_refill()
522 uap->dmatx.queued = false; in pl011_dma_tx_refill()
543 uap->dmatx.queued = true; in pl011_dma_tx_refill()
576 if (uap->dmatx.queued) { in pl011_dma_tx_irq()
602 if (uap->dmatx.queued) { in pl011_dma_tx_stop()
627 if (!uap->dmatx.queued) { in pl011_dma_tx_start()
686 dmaengine_terminate_all(uap->dmatx.chan); in pl011_dma_flush_buffer()
688 if (uap->dmatx.queued) { in pl011_dma_flush_buffer()
689 dma_unmap_sg(uap->dmatx.chan->device->dev, &uap->dmatx.sg, 1, in pl011_dma_flush_buffer()
691 uap->dmatx.queued = false; in pl011_dma_flush_buffer()
988 if (!uap->dmatx.chan) in pl011_dma_startup()
991 uap->dmatx.buf = kmalloc(PL011_DMA_BUFFER_SIZE, GFP_KERNEL | __GFP_DMA); in pl011_dma_startup()
992 if (!uap->dmatx.buf) { in pl011_dma_startup()
998 sg_init_one(&uap->dmatx.sg, uap->dmatx.buf, PL011_DMA_BUFFER_SIZE); in pl011_dma_startup()
1075 dmaengine_terminate_all(uap->dmatx.chan); in pl011_dma_shutdown()
1076 if (uap->dmatx.queued) { in pl011_dma_shutdown()
1077 dma_unmap_sg(uap->dmatx.chan->device->dev, &uap->dmatx.sg, 1, in pl011_dma_shutdown()
1079 uap->dmatx.queued = false; in pl011_dma_shutdown()
1082 kfree(uap->dmatx.buf); in pl011_dma_shutdown()