Lines Matching refs:dma_desc
239 struct tegra_dma_desc *dma_desc; member
473 struct tegra_dma_desc *dma_desc = tdc->dma_desc; in tegra_dma_configure_next_sg() local
478 dma_desc->sg_idx++; in tegra_dma_configure_next_sg()
481 if (dma_desc->sg_idx == dma_desc->sg_count) in tegra_dma_configure_next_sg()
482 dma_desc->sg_idx = 0; in tegra_dma_configure_next_sg()
493 ch_regs = &dma_desc->sg_req[dma_desc->sg_idx].ch_regs; in tegra_dma_configure_next_sg()
507 struct tegra_dma_desc *dma_desc = tdc->dma_desc; in tegra_dma_start() local
511 if (!dma_desc) { in tegra_dma_start()
516 dma_desc = vd_to_tegra_dma_desc(vdesc); in tegra_dma_start()
518 dma_desc->tdc = tdc; in tegra_dma_start()
519 tdc->dma_desc = dma_desc; in tegra_dma_start()
524 ch_regs = &dma_desc->sg_req[dma_desc->sg_idx].ch_regs; in tegra_dma_start()
543 vchan_cookie_complete(&tdc->dma_desc->vd); in tegra_dma_xfer_complete()
546 tdc->dma_desc = NULL; in tegra_dma_xfer_complete()
593 struct tegra_dma_desc *dma_desc = tdc->dma_desc; in tegra_dma_isr() local
613 if (!dma_desc) in tegra_dma_isr()
616 sg_req = dma_desc->sg_req; in tegra_dma_isr()
617 dma_desc->bytes_xfer += sg_req[dma_desc->sg_idx].len; in tegra_dma_isr()
619 if (dma_desc->cyclic) { in tegra_dma_isr()
620 vchan_cyclic_callback(&dma_desc->vd); in tegra_dma_isr()
623 dma_desc->sg_idx++; in tegra_dma_isr()
624 if (dma_desc->sg_idx == dma_desc->sg_count) in tegra_dma_isr()
640 if (tdc->dma_desc) in tegra_dma_issue_pending()
654 if (tdc->dma_desc && tdc->dma_desc->cyclic) in tegra_dma_issue_pending()
707 if (tdc->dma_desc) { in tegra_dma_terminate_all()
714 vchan_terminate_vdesc(&tdc->dma_desc->vd); in tegra_dma_terminate_all()
716 tdc->dma_desc = NULL; in tegra_dma_terminate_all()
730 struct tegra_dma_desc *dma_desc = tdc->dma_desc; in tegra_dma_get_residual() local
731 struct tegra_dma_sg_req *sg_req = dma_desc->sg_req; in tegra_dma_get_residual()
746 bytes_xfer = dma_desc->bytes_xfer + in tegra_dma_get_residual()
747 sg_req[dma_desc->sg_idx].len - (wcount * 4); in tegra_dma_get_residual()
749 residual = dma_desc->bytes_req - (bytes_xfer % dma_desc->bytes_req); in tegra_dma_get_residual()
759 struct tegra_dma_desc *dma_desc; in tegra_dma_tx_status() local
772 dma_desc = vd_to_tegra_dma_desc(vd); in tegra_dma_tx_status()
773 residual = dma_desc->bytes_req; in tegra_dma_tx_status()
775 } else if (tdc->dma_desc && tdc->dma_desc->vd.tx.cookie == cookie) { in tegra_dma_tx_status()
862 struct tegra_dma_desc *dma_desc; in tegra_dma_prep_dma_memset() local
898 dma_desc = kzalloc(struct_size(dma_desc, sg_req, 1), GFP_NOWAIT); in tegra_dma_prep_dma_memset()
899 if (!dma_desc) in tegra_dma_prep_dma_memset()
902 dma_desc->bytes_req = len; in tegra_dma_prep_dma_memset()
903 dma_desc->sg_count = 1; in tegra_dma_prep_dma_memset()
904 sg_req = dma_desc->sg_req; in tegra_dma_prep_dma_memset()
918 dma_desc->cyclic = false; in tegra_dma_prep_dma_memset()
919 return vchan_tx_prep(&tdc->vc, &dma_desc->vd, flags); in tegra_dma_prep_dma_memset()
928 struct tegra_dma_desc *dma_desc; in tegra_dma_prep_dma_memcpy() local
967 dma_desc = kzalloc(struct_size(dma_desc, sg_req, 1), GFP_NOWAIT); in tegra_dma_prep_dma_memcpy()
968 if (!dma_desc) in tegra_dma_prep_dma_memcpy()
971 dma_desc->bytes_req = len; in tegra_dma_prep_dma_memcpy()
972 dma_desc->sg_count = 1; in tegra_dma_prep_dma_memcpy()
973 sg_req = dma_desc->sg_req; in tegra_dma_prep_dma_memcpy()
988 dma_desc->cyclic = false; in tegra_dma_prep_dma_memcpy()
989 return vchan_tx_prep(&tdc->vc, &dma_desc->vd, flags); in tegra_dma_prep_dma_memcpy()
1002 struct tegra_dma_desc *dma_desc; in tegra_dma_prep_slave_sg() local
1060 dma_desc = kzalloc(struct_size(dma_desc, sg_req, sg_len), GFP_NOWAIT); in tegra_dma_prep_slave_sg()
1061 if (!dma_desc) in tegra_dma_prep_slave_sg()
1064 dma_desc->sg_count = sg_len; in tegra_dma_prep_slave_sg()
1065 sg_req = dma_desc->sg_req; in tegra_dma_prep_slave_sg()
1078 kfree(dma_desc); in tegra_dma_prep_slave_sg()
1083 dma_desc->bytes_req += len; in tegra_dma_prep_slave_sg()
1108 dma_desc->cyclic = false; in tegra_dma_prep_slave_sg()
1109 return vchan_tx_prep(&tdc->vc, &dma_desc->vd, flags); in tegra_dma_prep_slave_sg()
1121 struct tegra_dma_desc *dma_desc; in tegra_dma_prep_dma_cyclic() local
1195 dma_desc = kzalloc(struct_size(dma_desc, sg_req, period_count), in tegra_dma_prep_dma_cyclic()
1197 if (!dma_desc) in tegra_dma_prep_dma_cyclic()
1200 dma_desc->bytes_req = buf_len; in tegra_dma_prep_dma_cyclic()
1201 dma_desc->sg_count = period_count; in tegra_dma_prep_dma_cyclic()
1202 sg_req = dma_desc->sg_req; in tegra_dma_prep_dma_cyclic()
1231 dma_desc->cyclic = true; in tegra_dma_prep_dma_cyclic()
1233 return vchan_tx_prep(&tdc->vc, &dma_desc->vd, flags); in tegra_dma_prep_dma_cyclic()
1497 if (tdc->dma_desc) { in tegra_dma_pm_suspend()