echan             149 drivers/dma/fsl-edma-common.c 		dma_pool_free(fsl_desc->echan->tcd_pool, fsl_desc->tcd[i].vtcd,
echan             424 drivers/dma/fsl-edma-common.c 	fsl_desc->echan = fsl_chan;
echan             133 drivers/dma/fsl-edma-common.h 	struct fsl_edma_chan		*echan;
echan             186 drivers/dma/ti/edma.c 	struct edma_chan		*echan;
echan             435 drivers/dma/ti/edma.c static void edma_set_chmap(struct edma_chan *echan, int slot)
echan             437 drivers/dma/ti/edma.c 	struct edma_cc *ecc = echan->ecc;
echan             438 drivers/dma/ti/edma.c 	int channel = EDMA_CHAN_SLOT(echan->ch_num);
echan             446 drivers/dma/ti/edma.c static void edma_setup_interrupt(struct edma_chan *echan, bool enable)
echan             448 drivers/dma/ti/edma.c 	struct edma_cc *ecc = echan->ecc;
echan             449 drivers/dma/ti/edma.c 	int channel = EDMA_CHAN_SLOT(echan->ch_num);
echan             591 drivers/dma/ti/edma.c static void edma_start(struct edma_chan *echan)
echan             593 drivers/dma/ti/edma.c 	struct edma_cc *ecc = echan->ecc;
echan             594 drivers/dma/ti/edma.c 	int channel = EDMA_CHAN_SLOT(echan->ch_num);
echan             598 drivers/dma/ti/edma.c 	if (!echan->hw_triggered) {
echan             618 drivers/dma/ti/edma.c static void edma_stop(struct edma_chan *echan)
echan             620 drivers/dma/ti/edma.c 	struct edma_cc *ecc = echan->ecc;
echan             621 drivers/dma/ti/edma.c 	int channel = EDMA_CHAN_SLOT(echan->ch_num);
echan             645 drivers/dma/ti/edma.c static void edma_pause(struct edma_chan *echan)
echan             647 drivers/dma/ti/edma.c 	int channel = EDMA_CHAN_SLOT(echan->ch_num);
echan             649 drivers/dma/ti/edma.c 	edma_shadow0_write_array(echan->ecc, SH_EECR,
echan             655 drivers/dma/ti/edma.c static void edma_resume(struct edma_chan *echan)
echan             657 drivers/dma/ti/edma.c 	int channel = EDMA_CHAN_SLOT(echan->ch_num);
echan             659 drivers/dma/ti/edma.c 	edma_shadow0_write_array(echan->ecc, SH_EESR,
echan             664 drivers/dma/ti/edma.c static void edma_trigger_channel(struct edma_chan *echan)
echan             666 drivers/dma/ti/edma.c 	struct edma_cc *ecc = echan->ecc;
echan             667 drivers/dma/ti/edma.c 	int channel = EDMA_CHAN_SLOT(echan->ch_num);
echan             677 drivers/dma/ti/edma.c static void edma_clean_channel(struct edma_chan *echan)
echan             679 drivers/dma/ti/edma.c 	struct edma_cc *ecc = echan->ecc;
echan             680 drivers/dma/ti/edma.c 	int channel = EDMA_CHAN_SLOT(echan->ch_num);
echan             695 drivers/dma/ti/edma.c static void edma_assign_channel_eventq(struct edma_chan *echan,
echan             698 drivers/dma/ti/edma.c 	struct edma_cc *ecc = echan->ecc;
echan             699 drivers/dma/ti/edma.c 	int channel = EDMA_CHAN_SLOT(echan->ch_num);
echan             713 drivers/dma/ti/edma.c static int edma_alloc_channel(struct edma_chan *echan,
echan             716 drivers/dma/ti/edma.c 	struct edma_cc *ecc = echan->ecc;
echan             717 drivers/dma/ti/edma.c 	int channel = EDMA_CHAN_SLOT(echan->ch_num);
echan             724 drivers/dma/ti/edma.c 	edma_stop(echan);
echan             726 drivers/dma/ti/edma.c 	edma_setup_interrupt(echan, true);
echan             728 drivers/dma/ti/edma.c 	edma_assign_channel_eventq(echan, eventq_no);
echan             733 drivers/dma/ti/edma.c static void edma_free_channel(struct edma_chan *echan)
echan             736 drivers/dma/ti/edma.c 	edma_stop(echan);
echan             738 drivers/dma/ti/edma.c 	edma_setup_interrupt(echan, false);
echan             762 drivers/dma/ti/edma.c static void edma_execute(struct edma_chan *echan)
echan             764 drivers/dma/ti/edma.c 	struct edma_cc *ecc = echan->ecc;
echan             767 drivers/dma/ti/edma.c 	struct device *dev = echan->vchan.chan.device->dev;
echan             770 drivers/dma/ti/edma.c 	if (!echan->edesc) {
echan             772 drivers/dma/ti/edma.c 		vdesc = vchan_next_desc(&echan->vchan);
echan             776 drivers/dma/ti/edma.c 		echan->edesc = to_edma_desc(&vdesc->tx);
echan             779 drivers/dma/ti/edma.c 	edesc = echan->edesc;
echan             789 drivers/dma/ti/edma.c 		edma_write_slot(ecc, echan->slot[i], &edesc->pset[j].param);
echan             803 drivers/dma/ti/edma.c 			 j, echan->ch_num, echan->slot[i],
echan             814 drivers/dma/ti/edma.c 			edma_link(ecc, echan->slot[i], echan->slot[i + 1]);
echan             826 drivers/dma/ti/edma.c 			edma_link(ecc, echan->slot[nslots - 1], echan->slot[1]);
echan             828 drivers/dma/ti/edma.c 			edma_link(ecc, echan->slot[nslots - 1],
echan             829 drivers/dma/ti/edma.c 				  echan->ecc->dummy_slot);
echan             832 drivers/dma/ti/edma.c 	if (echan->missed) {
echan             838 drivers/dma/ti/edma.c 		dev_dbg(dev, "missed event on channel %d\n", echan->ch_num);
echan             839 drivers/dma/ti/edma.c 		edma_clean_channel(echan);
echan             840 drivers/dma/ti/edma.c 		edma_stop(echan);
echan             841 drivers/dma/ti/edma.c 		edma_start(echan);
echan             842 drivers/dma/ti/edma.c 		edma_trigger_channel(echan);
echan             843 drivers/dma/ti/edma.c 		echan->missed = 0;
echan             846 drivers/dma/ti/edma.c 			echan->ch_num);
echan             847 drivers/dma/ti/edma.c 		edma_start(echan);
echan             850 drivers/dma/ti/edma.c 			echan->ch_num, edesc->processed);
echan             851 drivers/dma/ti/edma.c 		edma_resume(echan);
echan             857 drivers/dma/ti/edma.c 	struct edma_chan *echan = to_edma_chan(chan);
echan             861 drivers/dma/ti/edma.c 	spin_lock_irqsave(&echan->vchan.lock, flags);
echan             868 drivers/dma/ti/edma.c 	if (echan->edesc) {
echan             869 drivers/dma/ti/edma.c 		edma_stop(echan);
echan             871 drivers/dma/ti/edma.c 		if (!echan->tc && echan->edesc->cyclic)
echan             872 drivers/dma/ti/edma.c 			edma_assign_channel_eventq(echan, EVENTQ_DEFAULT);
echan             874 drivers/dma/ti/edma.c 		vchan_terminate_vdesc(&echan->edesc->vdesc);
echan             875 drivers/dma/ti/edma.c 		echan->edesc = NULL;
echan             878 drivers/dma/ti/edma.c 	vchan_get_all_descriptors(&echan->vchan, &head);
echan             879 drivers/dma/ti/edma.c 	spin_unlock_irqrestore(&echan->vchan.lock, flags);
echan             880 drivers/dma/ti/edma.c 	vchan_dma_desc_free_list(&echan->vchan, &head);
echan             887 drivers/dma/ti/edma.c 	struct edma_chan *echan = to_edma_chan(chan);
echan             889 drivers/dma/ti/edma.c 	vchan_synchronize(&echan->vchan);
echan             895 drivers/dma/ti/edma.c 	struct edma_chan *echan = to_edma_chan(chan);
echan             905 drivers/dma/ti/edma.c 	memcpy(&echan->cfg, cfg, sizeof(echan->cfg));
echan             912 drivers/dma/ti/edma.c 	struct edma_chan *echan = to_edma_chan(chan);
echan             914 drivers/dma/ti/edma.c 	if (!echan->edesc)
echan             917 drivers/dma/ti/edma.c 	edma_pause(echan);
echan             923 drivers/dma/ti/edma.c 	struct edma_chan *echan = to_edma_chan(chan);
echan             925 drivers/dma/ti/edma.c 	edma_resume(echan);
echan             945 drivers/dma/ti/edma.c 	struct edma_chan *echan = to_edma_chan(chan);
echan            1030 drivers/dma/ti/edma.c 	param->opt = EDMA_TCC(EDMA_CHAN_SLOT(echan->ch_num));
echan            1058 drivers/dma/ti/edma.c 	struct edma_chan *echan = to_edma_chan(chan);
echan            1067 drivers/dma/ti/edma.c 	if (unlikely(!echan || !sgl || !sg_len))
echan            1071 drivers/dma/ti/edma.c 		src_addr = echan->cfg.src_addr;
echan            1072 drivers/dma/ti/edma.c 		dev_width = echan->cfg.src_addr_width;
echan            1073 drivers/dma/ti/edma.c 		burst = echan->cfg.src_maxburst;
echan            1075 drivers/dma/ti/edma.c 		dst_addr = echan->cfg.dst_addr;
echan            1076 drivers/dma/ti/edma.c 		dev_width = echan->cfg.dst_addr_width;
echan            1077 drivers/dma/ti/edma.c 		burst = echan->cfg.dst_maxburst;
echan            1095 drivers/dma/ti/edma.c 	edesc->echan = echan;
echan            1101 drivers/dma/ti/edma.c 		if (echan->slot[i] < 0) {
echan            1102 drivers/dma/ti/edma.c 			echan->slot[i] =
echan            1103 drivers/dma/ti/edma.c 				edma_alloc_slot(echan->ecc, EDMA_SLOT_ANY);
echan            1104 drivers/dma/ti/edma.c 			if (echan->slot[i] < 0) {
echan            1146 drivers/dma/ti/edma.c 	return vchan_tx_prep(&echan->vchan, &edesc->vdesc, tx_flags);
echan            1156 drivers/dma/ti/edma.c 	struct edma_chan *echan = to_edma_chan(chan);
echan            1159 drivers/dma/ti/edma.c 	if (unlikely(!echan || !len))
echan            1212 drivers/dma/ti/edma.c 	edesc->echan = echan;
echan            1232 drivers/dma/ti/edma.c 		if (echan->slot[1] < 0) {
echan            1233 drivers/dma/ti/edma.c 			echan->slot[1] = edma_alloc_slot(echan->ecc,
echan            1235 drivers/dma/ti/edma.c 			if (echan->slot[1] < 0) {
echan            1262 drivers/dma/ti/edma.c 	return vchan_tx_prep(&echan->vchan, &edesc->vdesc, tx_flags);
echan            1270 drivers/dma/ti/edma.c 	struct edma_chan *echan = to_edma_chan(chan);
echan            1279 drivers/dma/ti/edma.c 	if (unlikely(!echan || !buf_len || !period_len))
echan            1283 drivers/dma/ti/edma.c 		src_addr = echan->cfg.src_addr;
echan            1285 drivers/dma/ti/edma.c 		dev_width = echan->cfg.src_addr_width;
echan            1286 drivers/dma/ti/edma.c 		burst = echan->cfg.src_maxburst;
echan            1289 drivers/dma/ti/edma.c 		dst_addr = echan->cfg.dst_addr;
echan            1290 drivers/dma/ti/edma.c 		dev_width = echan->cfg.dst_addr_width;
echan            1291 drivers/dma/ti/edma.c 		burst = echan->cfg.dst_maxburst;
echan            1341 drivers/dma/ti/edma.c 	edesc->echan = echan;
echan            1344 drivers/dma/ti/edma.c 		__func__, echan->ch_num, nslots, period_len, buf_len);
echan            1348 drivers/dma/ti/edma.c 		if (echan->slot[i] < 0) {
echan            1349 drivers/dma/ti/edma.c 			echan->slot[i] =
echan            1350 drivers/dma/ti/edma.c 				edma_alloc_slot(echan->ecc, EDMA_SLOT_ANY);
echan            1351 drivers/dma/ti/edma.c 			if (echan->slot[i] < 0) {
echan            1391 drivers/dma/ti/edma.c 			i, echan->ch_num, echan->slot[i],
echan            1416 drivers/dma/ti/edma.c 	if (!echan->tc)
echan            1417 drivers/dma/ti/edma.c 		edma_assign_channel_eventq(echan, EVENTQ_0);
echan            1419 drivers/dma/ti/edma.c 	return vchan_tx_prep(&echan->vchan, &edesc->vdesc, tx_flags);
echan            1422 drivers/dma/ti/edma.c static void edma_completion_handler(struct edma_chan *echan)
echan            1424 drivers/dma/ti/edma.c 	struct device *dev = echan->vchan.chan.device->dev;
echan            1427 drivers/dma/ti/edma.c 	spin_lock(&echan->vchan.lock);
echan            1428 drivers/dma/ti/edma.c 	edesc = echan->edesc;
echan            1432 drivers/dma/ti/edma.c 			spin_unlock(&echan->vchan.lock);
echan            1436 drivers/dma/ti/edma.c 			edma_stop(echan);
echan            1438 drivers/dma/ti/edma.c 			echan->edesc = NULL;
echan            1441 drivers/dma/ti/edma.c 				echan->ch_num);
echan            1444 drivers/dma/ti/edma.c 				echan->ch_num);
echan            1446 drivers/dma/ti/edma.c 			edma_pause(echan);
echan            1453 drivers/dma/ti/edma.c 		edma_execute(echan);
echan            1456 drivers/dma/ti/edma.c 	spin_unlock(&echan->vchan.lock);
echan            1505 drivers/dma/ti/edma.c static void edma_error_handler(struct edma_chan *echan)
echan            1507 drivers/dma/ti/edma.c 	struct edma_cc *ecc = echan->ecc;
echan            1508 drivers/dma/ti/edma.c 	struct device *dev = echan->vchan.chan.device->dev;
echan            1512 drivers/dma/ti/edma.c 	if (!echan->edesc)
echan            1515 drivers/dma/ti/edma.c 	spin_lock(&echan->vchan.lock);
echan            1517 drivers/dma/ti/edma.c 	err = edma_read_slot(ecc, echan->slot[0], &p);
echan            1533 drivers/dma/ti/edma.c 		echan->missed = 1;
echan            1540 drivers/dma/ti/edma.c 		edma_clean_channel(echan);
echan            1541 drivers/dma/ti/edma.c 		edma_stop(echan);
echan            1542 drivers/dma/ti/edma.c 		edma_start(echan);
echan            1543 drivers/dma/ti/edma.c 		edma_trigger_channel(echan);
echan            1545 drivers/dma/ti/edma.c 	spin_unlock(&echan->vchan.lock);
echan            1637 drivers/dma/ti/edma.c 	struct edma_chan *echan = to_edma_chan(chan);
echan            1638 drivers/dma/ti/edma.c 	struct edma_cc *ecc = echan->ecc;
echan            1643 drivers/dma/ti/edma.c 	if (echan->tc) {
echan            1644 drivers/dma/ti/edma.c 		eventq_no = echan->tc->id;
echan            1647 drivers/dma/ti/edma.c 		echan->tc = &ecc->tc_list[ecc->info->default_queue];
echan            1648 drivers/dma/ti/edma.c 		eventq_no = echan->tc->id;
echan            1651 drivers/dma/ti/edma.c 	ret = edma_alloc_channel(echan, eventq_no);
echan            1655 drivers/dma/ti/edma.c 	echan->slot[0] = edma_alloc_slot(ecc, echan->ch_num);
echan            1656 drivers/dma/ti/edma.c 	if (echan->slot[0] < 0) {
echan            1658 drivers/dma/ti/edma.c 			EDMA_CHAN_SLOT(echan->ch_num));
echan            1659 drivers/dma/ti/edma.c 		ret = echan->slot[0];
echan            1664 drivers/dma/ti/edma.c 	edma_set_chmap(echan, echan->slot[0]);
echan            1665 drivers/dma/ti/edma.c 	echan->alloced = true;
echan            1668 drivers/dma/ti/edma.c 		EDMA_CHAN_SLOT(echan->ch_num), chan->chan_id,
echan            1669 drivers/dma/ti/edma.c 		echan->hw_triggered ? "HW" : "SW");
echan            1674 drivers/dma/ti/edma.c 	edma_free_channel(echan);
echan            1681 drivers/dma/ti/edma.c 	struct edma_chan *echan = to_edma_chan(chan);
echan            1682 drivers/dma/ti/edma.c 	struct device *dev = echan->ecc->dev;
echan            1686 drivers/dma/ti/edma.c 	edma_stop(echan);
echan            1688 drivers/dma/ti/edma.c 	vchan_free_chan_resources(&echan->vchan);
echan            1692 drivers/dma/ti/edma.c 		if (echan->slot[i] >= 0) {
echan            1693 drivers/dma/ti/edma.c 			edma_free_slot(echan->ecc, echan->slot[i]);
echan            1694 drivers/dma/ti/edma.c 			echan->slot[i] = -1;
echan            1699 drivers/dma/ti/edma.c 	edma_set_chmap(echan, echan->ecc->dummy_slot);
echan            1702 drivers/dma/ti/edma.c 	if (echan->alloced) {
echan            1703 drivers/dma/ti/edma.c 		edma_free_channel(echan);
echan            1704 drivers/dma/ti/edma.c 		echan->alloced = false;
echan            1707 drivers/dma/ti/edma.c 	echan->tc = NULL;
echan            1708 drivers/dma/ti/edma.c 	echan->hw_triggered = false;
echan            1711 drivers/dma/ti/edma.c 		EDMA_CHAN_SLOT(echan->ch_num), chan->chan_id);
echan            1717 drivers/dma/ti/edma.c 	struct edma_chan *echan = to_edma_chan(chan);
echan            1720 drivers/dma/ti/edma.c 	spin_lock_irqsave(&echan->vchan.lock, flags);
echan            1721 drivers/dma/ti/edma.c 	if (vchan_issue_pending(&echan->vchan) && !echan->edesc)
echan            1722 drivers/dma/ti/edma.c 		edma_execute(echan);
echan            1723 drivers/dma/ti/edma.c 	spin_unlock_irqrestore(&echan->vchan.lock, flags);
echan            1739 drivers/dma/ti/edma.c 	struct edma_chan *echan = edesc->echan;
echan            1742 drivers/dma/ti/edma.c 	int channel = EDMA_CHAN_SLOT(echan->ch_num);
echan            1752 drivers/dma/ti/edma.c 	pos = edma_get_position(echan->ecc, echan->slot[0], dst);
echan            1768 drivers/dma/ti/edma.c 	while (edma_shadow0_read_array(echan->ecc, event_reg, idx) & ch_bit) {
echan            1769 drivers/dma/ti/edma.c 		pos = edma_get_position(echan->ecc, echan->slot[0], dst);
echan            1774 drivers/dma/ti/edma.c 			dev_dbg_ratelimited(echan->vchan.chan.device->dev,
echan            1829 drivers/dma/ti/edma.c 	struct edma_chan *echan = to_edma_chan(chan);
echan            1843 drivers/dma/ti/edma.c 	spin_lock_irqsave(&echan->vchan.lock, flags);
echan            1844 drivers/dma/ti/edma.c 	if (echan->edesc && echan->edesc->vdesc.tx.cookie == cookie) {
echan            1845 drivers/dma/ti/edma.c 		txstate->residue = edma_residue(echan->edesc);
echan            1847 drivers/dma/ti/edma.c 		struct virt_dma_desc *vdesc = vchan_find_desc(&echan->vchan,
echan            1861 drivers/dma/ti/edma.c 	    echan->edesc && echan->edesc->polled &&
echan            1862 drivers/dma/ti/edma.c 	    echan->edesc->vdesc.tx.cookie == cookie) {
echan            1863 drivers/dma/ti/edma.c 		edma_stop(echan);
echan            1864 drivers/dma/ti/edma.c 		vchan_cookie_complete(&echan->edesc->vdesc);
echan            1865 drivers/dma/ti/edma.c 		echan->edesc = NULL;
echan            1866 drivers/dma/ti/edma.c 		edma_execute(echan);
echan            1870 drivers/dma/ti/edma.c 	spin_unlock_irqrestore(&echan->vchan.lock, flags);
echan            1968 drivers/dma/ti/edma.c 		struct edma_chan *echan = &ecc->slave_chans[i];
echan            1969 drivers/dma/ti/edma.c 		echan->ch_num = EDMA_CTLR_CHAN(ecc->id, i);
echan            1970 drivers/dma/ti/edma.c 		echan->ecc = ecc;
echan            1971 drivers/dma/ti/edma.c 		echan->vchan.desc_free = edma_desc_free;
echan            1974 drivers/dma/ti/edma.c 			vchan_init(&echan->vchan, m_ddev);
echan            1976 drivers/dma/ti/edma.c 			vchan_init(&echan->vchan, s_ddev);
echan            1978 drivers/dma/ti/edma.c 		INIT_LIST_HEAD(&echan->node);
echan            1980 drivers/dma/ti/edma.c 			echan->slot[j] = -1;
echan            2200 drivers/dma/ti/edma.c 	struct edma_chan *echan;
echan            2207 drivers/dma/ti/edma.c 		echan = &ecc->slave_chans[i];
echan            2208 drivers/dma/ti/edma.c 		if (echan->ch_num == dma_spec->args[0]) {
echan            2209 drivers/dma/ti/edma.c 			chan = &echan->vchan.chan;
echan            2217 drivers/dma/ti/edma.c 	if (echan->ecc->legacy_mode && dma_spec->args_count == 1)
echan            2220 drivers/dma/ti/edma.c 	if (!echan->ecc->legacy_mode && dma_spec->args_count == 2 &&
echan            2221 drivers/dma/ti/edma.c 	    dma_spec->args[1] < echan->ecc->num_tc) {
echan            2222 drivers/dma/ti/edma.c 		echan->tc = &echan->ecc->tc_list[dma_spec->args[1]];
echan            2229 drivers/dma/ti/edma.c 	echan->hw_triggered = true;
echan            2483 drivers/dma/ti/edma.c 	struct edma_chan *echan, *_echan;
echan            2485 drivers/dma/ti/edma.c 	list_for_each_entry_safe(echan, _echan,
echan            2487 drivers/dma/ti/edma.c 		list_del(&echan->vchan.chan.device_node);
echan            2488 drivers/dma/ti/edma.c 		tasklet_kill(&echan->vchan.task);
echan            2516 drivers/dma/ti/edma.c 	struct edma_chan *echan = ecc->slave_chans;
echan            2520 drivers/dma/ti/edma.c 		if (echan[i].alloced)
echan            2521 drivers/dma/ti/edma.c 			edma_setup_interrupt(&echan[i], false);
echan            2530 drivers/dma/ti/edma.c 	struct edma_chan *echan = ecc->slave_chans;
echan            2545 drivers/dma/ti/edma.c 		if (echan[i].alloced) {
echan            2551 drivers/dma/ti/edma.c 			edma_setup_interrupt(&echan[i], true);
echan            2554 drivers/dma/ti/edma.c 			edma_set_chmap(&echan[i], echan[i].slot[0]);
echan            2595 drivers/dma/ti/edma.c 		struct edma_chan *echan = to_edma_chan(chan);
echan            2597 drivers/dma/ti/edma.c 		if (ch_req == echan->ch_num) {
echan            2599 drivers/dma/ti/edma.c 			echan->hw_triggered = true;