schan              52 drivers/dma/sh/shdma-base.c static void shdma_chan_xfer_ld_queue(struct shdma_chan *schan)
schan              54 drivers/dma/sh/shdma-base.c 	struct shdma_dev *sdev = to_shdma_dev(schan->dma_chan.device);
schan              59 drivers/dma/sh/shdma-base.c 	if (ops->channel_busy(schan))
schan              63 drivers/dma/sh/shdma-base.c 	list_for_each_entry(sdesc, &schan->ld_queue, node)
schan              65 drivers/dma/sh/shdma-base.c 			ops->start_xfer(schan, sdesc);
schan              74 drivers/dma/sh/shdma-base.c 	struct shdma_chan *schan = to_shdma_chan(tx->chan);
schan              79 drivers/dma/sh/shdma-base.c 	spin_lock_irq(&schan->chan_lock);
schan              81 drivers/dma/sh/shdma-base.c 	power_up = list_empty(&schan->ld_queue);
schan              94 drivers/dma/sh/shdma-base.c 				      &chunk->node == &schan->ld_free))
schan             105 drivers/dma/sh/shdma-base.c 		list_move_tail(&chunk->node, &schan->ld_queue);
schan             107 drivers/dma/sh/shdma-base.c 		dev_dbg(schan->dev, "submit #%d@%p on %d\n",
schan             108 drivers/dma/sh/shdma-base.c 			tx->cookie, &chunk->async_tx, schan->id);
schan             113 drivers/dma/sh/shdma-base.c 		schan->pm_state = SHDMA_PM_BUSY;
schan             115 drivers/dma/sh/shdma-base.c 		ret = pm_runtime_get(schan->dev);
schan             117 drivers/dma/sh/shdma-base.c 		spin_unlock_irq(&schan->chan_lock);
schan             119 drivers/dma/sh/shdma-base.c 			dev_err(schan->dev, "%s(): GET = %d\n", __func__, ret);
schan             121 drivers/dma/sh/shdma-base.c 		pm_runtime_barrier(schan->dev);
schan             123 drivers/dma/sh/shdma-base.c 		spin_lock_irq(&schan->chan_lock);
schan             126 drivers/dma/sh/shdma-base.c 		if (schan->pm_state != SHDMA_PM_ESTABLISHED) {
schan             128 drivers/dma/sh/shdma-base.c 				to_shdma_dev(schan->dma_chan.device);
schan             130 drivers/dma/sh/shdma-base.c 			dev_dbg(schan->dev, "Bring up channel %d\n",
schan             131 drivers/dma/sh/shdma-base.c 				schan->id);
schan             137 drivers/dma/sh/shdma-base.c 			ops->setup_xfer(schan, schan->slave_id);
schan             139 drivers/dma/sh/shdma-base.c 			if (schan->pm_state == SHDMA_PM_PENDING)
schan             140 drivers/dma/sh/shdma-base.c 				shdma_chan_xfer_ld_queue(schan);
schan             141 drivers/dma/sh/shdma-base.c 			schan->pm_state = SHDMA_PM_ESTABLISHED;
schan             148 drivers/dma/sh/shdma-base.c 		schan->pm_state = SHDMA_PM_PENDING;
schan             151 drivers/dma/sh/shdma-base.c 	spin_unlock_irq(&schan->chan_lock);
schan             157 drivers/dma/sh/shdma-base.c static struct shdma_desc *shdma_get_desc(struct shdma_chan *schan)
schan             161 drivers/dma/sh/shdma-base.c 	list_for_each_entry(sdesc, &schan->ld_free, node)
schan             171 drivers/dma/sh/shdma-base.c static int shdma_setup_slave(struct shdma_chan *schan, dma_addr_t slave_addr)
schan             173 drivers/dma/sh/shdma-base.c 	struct shdma_dev *sdev = to_shdma_dev(schan->dma_chan.device);
schan             177 drivers/dma/sh/shdma-base.c 	if (schan->dev->of_node) {
schan             178 drivers/dma/sh/shdma-base.c 		match = schan->hw_req;
schan             179 drivers/dma/sh/shdma-base.c 		ret = ops->set_slave(schan, match, slave_addr, true);
schan             183 drivers/dma/sh/shdma-base.c 		match = schan->real_slave_id;
schan             186 drivers/dma/sh/shdma-base.c 	if (schan->real_slave_id < 0 || schan->real_slave_id >= slave_num)
schan             189 drivers/dma/sh/shdma-base.c 	if (test_and_set_bit(schan->real_slave_id, shdma_slave_used))
schan             192 drivers/dma/sh/shdma-base.c 	ret = ops->set_slave(schan, match, slave_addr, false);
schan             194 drivers/dma/sh/shdma-base.c 		clear_bit(schan->real_slave_id, shdma_slave_used);
schan             198 drivers/dma/sh/shdma-base.c 	schan->slave_id = schan->real_slave_id;
schan             205 drivers/dma/sh/shdma-base.c 	struct shdma_chan *schan = to_shdma_chan(chan);
schan             206 drivers/dma/sh/shdma-base.c 	struct shdma_dev *sdev = to_shdma_dev(schan->dma_chan.device);
schan             218 drivers/dma/sh/shdma-base.c 		schan->real_slave_id = slave->slave_id;
schan             219 drivers/dma/sh/shdma-base.c 		ret = shdma_setup_slave(schan, 0);
schan             224 drivers/dma/sh/shdma-base.c 		schan->slave_id = -EINVAL;
schan             227 drivers/dma/sh/shdma-base.c 	schan->desc = kcalloc(NR_DESCS_PER_CHANNEL,
schan             229 drivers/dma/sh/shdma-base.c 	if (!schan->desc) {
schan             233 drivers/dma/sh/shdma-base.c 	schan->desc_num = NR_DESCS_PER_CHANNEL;
schan             236 drivers/dma/sh/shdma-base.c 		desc = ops->embedded_desc(schan->desc, i);
schan             238 drivers/dma/sh/shdma-base.c 					     &schan->dma_chan);
schan             242 drivers/dma/sh/shdma-base.c 		list_add(&desc->node, &schan->ld_free);
schan             276 drivers/dma/sh/shdma-base.c 	struct shdma_chan *schan;
schan             286 drivers/dma/sh/shdma-base.c 	schan = to_shdma_chan(chan);
schan             295 drivers/dma/sh/shdma-base.c 	if (schan->dev->of_node) {
schan             296 drivers/dma/sh/shdma-base.c 		ret = sdev->ops->set_slave(schan, slave_id, 0, true);
schan             300 drivers/dma/sh/shdma-base.c 		schan->real_slave_id = schan->slave_id;
schan             313 drivers/dma/sh/shdma-base.c 	ret = sdev->ops->set_slave(schan, slave_id, 0, true);
schan             317 drivers/dma/sh/shdma-base.c 	schan->real_slave_id = slave_id;
schan             323 drivers/dma/sh/shdma-base.c static dma_async_tx_callback __ld_cleanup(struct shdma_chan *schan, bool all)
schan             335 drivers/dma/sh/shdma-base.c 	spin_lock_irqsave(&schan->chan_lock, flags);
schan             336 drivers/dma/sh/shdma-base.c 	list_for_each_entry_safe(desc, _desc, &schan->ld_queue, node) {
schan             357 drivers/dma/sh/shdma-base.c 			if (schan->dma_chan.completed_cookie != desc->cookie - 1)
schan             358 drivers/dma/sh/shdma-base.c 				dev_dbg(schan->dev,
schan             361 drivers/dma/sh/shdma-base.c 					schan->dma_chan.completed_cookie + 1);
schan             362 drivers/dma/sh/shdma-base.c 			schan->dma_chan.completed_cookie = desc->cookie;
schan             370 drivers/dma/sh/shdma-base.c 			dev_dbg(schan->dev, "descriptor #%d@%p on %d callback\n",
schan             371 drivers/dma/sh/shdma-base.c 				tx->cookie, tx, schan->id);
schan             393 drivers/dma/sh/shdma-base.c 		dev_dbg(schan->dev, "descriptor %p #%d completed.\n",
schan             403 drivers/dma/sh/shdma-base.c 				list_move(&desc->node, &schan->ld_free);
schan             410 drivers/dma/sh/shdma-base.c 			if (list_empty(&schan->ld_queue)) {
schan             411 drivers/dma/sh/shdma-base.c 				dev_dbg(schan->dev, "Bring down channel %d\n", schan->id);
schan             412 drivers/dma/sh/shdma-base.c 				pm_runtime_put(schan->dev);
schan             413 drivers/dma/sh/shdma-base.c 				schan->pm_state = SHDMA_PM_ESTABLISHED;
schan             414 drivers/dma/sh/shdma-base.c 			} else if (schan->pm_state == SHDMA_PM_PENDING) {
schan             415 drivers/dma/sh/shdma-base.c 				shdma_chan_xfer_ld_queue(schan);
schan             425 drivers/dma/sh/shdma-base.c 		schan->dma_chan.completed_cookie = schan->dma_chan.cookie;
schan             427 drivers/dma/sh/shdma-base.c 	list_splice_tail(&cyclic_list, &schan->ld_queue);
schan             429 drivers/dma/sh/shdma-base.c 	spin_unlock_irqrestore(&schan->chan_lock, flags);
schan             441 drivers/dma/sh/shdma-base.c static void shdma_chan_ld_cleanup(struct shdma_chan *schan, bool all)
schan             443 drivers/dma/sh/shdma-base.c 	while (__ld_cleanup(schan, all))
schan             452 drivers/dma/sh/shdma-base.c 	struct shdma_chan *schan = to_shdma_chan(chan);
schan             458 drivers/dma/sh/shdma-base.c 	spin_lock_irq(&schan->chan_lock);
schan             459 drivers/dma/sh/shdma-base.c 	ops->halt_channel(schan);
schan             460 drivers/dma/sh/shdma-base.c 	spin_unlock_irq(&schan->chan_lock);
schan             465 drivers/dma/sh/shdma-base.c 	if (!list_empty(&schan->ld_queue))
schan             466 drivers/dma/sh/shdma-base.c 		shdma_chan_ld_cleanup(schan, true);
schan             468 drivers/dma/sh/shdma-base.c 	if (schan->slave_id >= 0) {
schan             470 drivers/dma/sh/shdma-base.c 		clear_bit(schan->slave_id, shdma_slave_used);
schan             474 drivers/dma/sh/shdma-base.c 	schan->real_slave_id = 0;
schan             476 drivers/dma/sh/shdma-base.c 	spin_lock_irq(&schan->chan_lock);
schan             478 drivers/dma/sh/shdma-base.c 	list_splice_init(&schan->ld_free, &list);
schan             479 drivers/dma/sh/shdma-base.c 	schan->desc_num = 0;
schan             481 drivers/dma/sh/shdma-base.c 	spin_unlock_irq(&schan->chan_lock);
schan             483 drivers/dma/sh/shdma-base.c 	kfree(schan->desc);
schan             501 drivers/dma/sh/shdma-base.c static struct shdma_desc *shdma_add_desc(struct shdma_chan *schan,
schan             505 drivers/dma/sh/shdma-base.c 	struct shdma_dev *sdev = to_shdma_dev(schan->dma_chan.device);
schan             514 drivers/dma/sh/shdma-base.c 	new = shdma_get_desc(schan);
schan             516 drivers/dma/sh/shdma-base.c 		dev_err(schan->dev, "No free link descriptor available\n");
schan             520 drivers/dma/sh/shdma-base.c 	ops->desc_setup(schan, new, *src, *dst, &copy_size);
schan             531 drivers/dma/sh/shdma-base.c 	dev_dbg(schan->dev,
schan             560 drivers/dma/sh/shdma-base.c static struct dma_async_tx_descriptor *shdma_prep_sg(struct shdma_chan *schan,
schan             572 drivers/dma/sh/shdma-base.c 		chunks += DIV_ROUND_UP(sg_dma_len(sg), schan->max_xfer_len);
schan             575 drivers/dma/sh/shdma-base.c 	spin_lock_irqsave(&schan->chan_lock, irq_flags);
schan             596 drivers/dma/sh/shdma-base.c 			dev_dbg(schan->dev, "Add SG #%d@%p[%zu], dma %pad\n",
schan             600 drivers/dma/sh/shdma-base.c 				new = shdma_add_desc(schan, flags,
schan             604 drivers/dma/sh/shdma-base.c 				new = shdma_add_desc(schan, flags,
schan             623 drivers/dma/sh/shdma-base.c 	list_splice_tail(&tx_list, &schan->ld_free);
schan             625 drivers/dma/sh/shdma-base.c 	spin_unlock_irqrestore(&schan->chan_lock, irq_flags);
schan             632 drivers/dma/sh/shdma-base.c 	list_splice(&tx_list, &schan->ld_free);
schan             634 drivers/dma/sh/shdma-base.c 	spin_unlock_irqrestore(&schan->chan_lock, irq_flags);
schan             643 drivers/dma/sh/shdma-base.c 	struct shdma_chan *schan = to_shdma_chan(chan);
schan             649 drivers/dma/sh/shdma-base.c 	BUG_ON(!schan->desc_num);
schan             657 drivers/dma/sh/shdma-base.c 	return shdma_prep_sg(schan, &sg, 1, &dma_dest, DMA_MEM_TO_MEM,
schan             665 drivers/dma/sh/shdma-base.c 	struct shdma_chan *schan = to_shdma_chan(chan);
schan             666 drivers/dma/sh/shdma-base.c 	struct shdma_dev *sdev = to_shdma_dev(schan->dma_chan.device);
schan             668 drivers/dma/sh/shdma-base.c 	int slave_id = schan->slave_id;
schan             674 drivers/dma/sh/shdma-base.c 	BUG_ON(!schan->desc_num);
schan             678 drivers/dma/sh/shdma-base.c 		dev_warn(schan->dev, "%s: bad parameter: len=%d, id=%d\n",
schan             683 drivers/dma/sh/shdma-base.c 	slave_addr = ops->slave_addr(schan);
schan             685 drivers/dma/sh/shdma-base.c 	return shdma_prep_sg(schan, sgl, sg_len, &slave_addr,
schan             696 drivers/dma/sh/shdma-base.c 	struct shdma_chan *schan = to_shdma_chan(chan);
schan             697 drivers/dma/sh/shdma-base.c 	struct shdma_dev *sdev = to_shdma_dev(schan->dma_chan.device);
schan             701 drivers/dma/sh/shdma-base.c 	int slave_id = schan->slave_id;
schan             709 drivers/dma/sh/shdma-base.c 	BUG_ON(!schan->desc_num);
schan             712 drivers/dma/sh/shdma-base.c 		dev_err(schan->dev, "sg length %d exceds limit %d",
schan             719 drivers/dma/sh/shdma-base.c 		dev_warn(schan->dev,
schan             725 drivers/dma/sh/shdma-base.c 	slave_addr = ops->slave_addr(schan);
schan             746 drivers/dma/sh/shdma-base.c 	desc = shdma_prep_sg(schan, sgl, sg_len, &slave_addr,
schan             755 drivers/dma/sh/shdma-base.c 	struct shdma_chan *schan = to_shdma_chan(chan);
schan             760 drivers/dma/sh/shdma-base.c 	spin_lock_irqsave(&schan->chan_lock, flags);
schan             761 drivers/dma/sh/shdma-base.c 	ops->halt_channel(schan);
schan             763 drivers/dma/sh/shdma-base.c 	if (ops->get_partial && !list_empty(&schan->ld_queue)) {
schan             765 drivers/dma/sh/shdma-base.c 		struct shdma_desc *desc = list_first_entry(&schan->ld_queue,
schan             767 drivers/dma/sh/shdma-base.c 		desc->partial = ops->get_partial(schan, desc);
schan             770 drivers/dma/sh/shdma-base.c 	spin_unlock_irqrestore(&schan->chan_lock, flags);
schan             772 drivers/dma/sh/shdma-base.c 	shdma_chan_ld_cleanup(schan, true);
schan             780 drivers/dma/sh/shdma-base.c 	struct shdma_chan *schan = to_shdma_chan(chan);
schan             794 drivers/dma/sh/shdma-base.c 			 config->slave_id != schan->real_slave_id))
schan             795 drivers/dma/sh/shdma-base.c 		schan->real_slave_id = config->slave_id;
schan             801 drivers/dma/sh/shdma-base.c 	return shdma_setup_slave(schan,
schan             808 drivers/dma/sh/shdma-base.c 	struct shdma_chan *schan = to_shdma_chan(chan);
schan             810 drivers/dma/sh/shdma-base.c 	spin_lock_irq(&schan->chan_lock);
schan             811 drivers/dma/sh/shdma-base.c 	if (schan->pm_state == SHDMA_PM_ESTABLISHED)
schan             812 drivers/dma/sh/shdma-base.c 		shdma_chan_xfer_ld_queue(schan);
schan             814 drivers/dma/sh/shdma-base.c 		schan->pm_state = SHDMA_PM_PENDING;
schan             815 drivers/dma/sh/shdma-base.c 	spin_unlock_irq(&schan->chan_lock);
schan             822 drivers/dma/sh/shdma-base.c 	struct shdma_chan *schan = to_shdma_chan(chan);
schan             826 drivers/dma/sh/shdma-base.c 	shdma_chan_ld_cleanup(schan, false);
schan             828 drivers/dma/sh/shdma-base.c 	spin_lock_irqsave(&schan->chan_lock, flags);
schan             839 drivers/dma/sh/shdma-base.c 		list_for_each_entry(sdesc, &schan->ld_queue, node)
schan             846 drivers/dma/sh/shdma-base.c 	spin_unlock_irqrestore(&schan->chan_lock, flags);
schan             855 drivers/dma/sh/shdma-base.c 	struct shdma_chan *schan;
schan             860 drivers/dma/sh/shdma-base.c 	shdma_for_each_chan(schan, sdev, i) {
schan             864 drivers/dma/sh/shdma-base.c 		if (!schan)
schan             867 drivers/dma/sh/shdma-base.c 		spin_lock(&schan->chan_lock);
schan             870 drivers/dma/sh/shdma-base.c 		ops->halt_channel(schan);
schan             872 drivers/dma/sh/shdma-base.c 		list_splice_init(&schan->ld_queue, &dl);
schan             875 drivers/dma/sh/shdma-base.c 			dev_dbg(schan->dev, "Bring down channel %d\n", schan->id);
schan             876 drivers/dma/sh/shdma-base.c 			pm_runtime_put(schan->dev);
schan             878 drivers/dma/sh/shdma-base.c 		schan->pm_state = SHDMA_PM_ESTABLISHED;
schan             880 drivers/dma/sh/shdma-base.c 		spin_unlock(&schan->chan_lock);
schan             890 drivers/dma/sh/shdma-base.c 		spin_lock(&schan->chan_lock);
schan             891 drivers/dma/sh/shdma-base.c 		list_splice(&dl, &schan->ld_free);
schan             892 drivers/dma/sh/shdma-base.c 		spin_unlock(&schan->chan_lock);
schan             903 drivers/dma/sh/shdma-base.c 	struct shdma_chan *schan = dev;
schan             905 drivers/dma/sh/shdma-base.c 		to_shdma_dev(schan->dma_chan.device)->ops;
schan             908 drivers/dma/sh/shdma-base.c 	spin_lock(&schan->chan_lock);
schan             910 drivers/dma/sh/shdma-base.c 	ret = ops->chan_irq(schan, irq) ? IRQ_WAKE_THREAD : IRQ_NONE;
schan             912 drivers/dma/sh/shdma-base.c 	spin_unlock(&schan->chan_lock);
schan             919 drivers/dma/sh/shdma-base.c 	struct shdma_chan *schan = dev;
schan             921 drivers/dma/sh/shdma-base.c 		to_shdma_dev(schan->dma_chan.device)->ops;
schan             924 drivers/dma/sh/shdma-base.c 	spin_lock_irq(&schan->chan_lock);
schan             925 drivers/dma/sh/shdma-base.c 	list_for_each_entry(sdesc, &schan->ld_queue, node) {
schan             927 drivers/dma/sh/shdma-base.c 		    ops->desc_completed(schan, sdesc)) {
schan             928 drivers/dma/sh/shdma-base.c 			dev_dbg(schan->dev, "done #%d@%p\n",
schan             935 drivers/dma/sh/shdma-base.c 	shdma_chan_xfer_ld_queue(schan);
schan             936 drivers/dma/sh/shdma-base.c 	spin_unlock_irq(&schan->chan_lock);
schan             938 drivers/dma/sh/shdma-base.c 	shdma_chan_ld_cleanup(schan, false);
schan             943 drivers/dma/sh/shdma-base.c int shdma_request_irq(struct shdma_chan *schan, int irq,
schan             946 drivers/dma/sh/shdma-base.c 	int ret = devm_request_threaded_irq(schan->dev, irq, chan_irq,
schan             947 drivers/dma/sh/shdma-base.c 					    chan_irqt, flags, name, schan);
schan             949 drivers/dma/sh/shdma-base.c 	schan->irq = ret < 0 ? ret : irq;
schan             956 drivers/dma/sh/shdma-base.c 			   struct shdma_chan *schan, int id)
schan             958 drivers/dma/sh/shdma-base.c 	schan->pm_state = SHDMA_PM_ESTABLISHED;
schan             961 drivers/dma/sh/shdma-base.c 	schan->dma_chan.device = &sdev->dma_dev;
schan             962 drivers/dma/sh/shdma-base.c 	dma_cookie_init(&schan->dma_chan);
schan             964 drivers/dma/sh/shdma-base.c 	schan->dev = sdev->dma_dev.dev;
schan             965 drivers/dma/sh/shdma-base.c 	schan->id = id;
schan             967 drivers/dma/sh/shdma-base.c 	if (!schan->max_xfer_len)
schan             968 drivers/dma/sh/shdma-base.c 		schan->max_xfer_len = PAGE_SIZE;
schan             970 drivers/dma/sh/shdma-base.c 	spin_lock_init(&schan->chan_lock);
schan             973 drivers/dma/sh/shdma-base.c 	INIT_LIST_HEAD(&schan->ld_queue);
schan             974 drivers/dma/sh/shdma-base.c 	INIT_LIST_HEAD(&schan->ld_free);
schan             977 drivers/dma/sh/shdma-base.c 	list_add_tail(&schan->dma_chan.device_node,
schan             979 drivers/dma/sh/shdma-base.c 	sdev->schan[id] = schan;
schan             983 drivers/dma/sh/shdma-base.c void shdma_chan_remove(struct shdma_chan *schan)
schan             985 drivers/dma/sh/shdma-base.c 	list_del(&schan->dma_chan.device_node);
schan            1011 drivers/dma/sh/shdma-base.c 	sdev->schan = kcalloc(chan_num, sizeof(*sdev->schan), GFP_KERNEL);
schan            1012 drivers/dma/sh/shdma-base.c 	if (!sdev->schan)
schan            1039 drivers/dma/sh/shdma-base.c 	kfree(sdev->schan);
schan             282 drivers/dma/sh/shdmac.c static void sh_dmae_start_xfer(struct shdma_chan *schan,
schan             285 drivers/dma/sh/shdmac.c 	struct sh_dmae_chan *sh_chan = container_of(schan, struct sh_dmae_chan,
schan             297 drivers/dma/sh/shdmac.c static bool sh_dmae_channel_busy(struct shdma_chan *schan)
schan             299 drivers/dma/sh/shdmac.c 	struct sh_dmae_chan *sh_chan = container_of(schan, struct sh_dmae_chan,
schan             304 drivers/dma/sh/shdmac.c static void sh_dmae_setup_xfer(struct shdma_chan *schan,
schan             307 drivers/dma/sh/shdmac.c 	struct sh_dmae_chan *sh_chan = container_of(schan, struct sh_dmae_chan,
schan             351 drivers/dma/sh/shdmac.c static int sh_dmae_set_slave(struct shdma_chan *schan,
schan             354 drivers/dma/sh/shdmac.c 	struct sh_dmae_chan *sh_chan = container_of(schan, struct sh_dmae_chan,
schan             377 drivers/dma/sh/shdmac.c static int sh_dmae_desc_setup(struct shdma_chan *schan,
schan             384 drivers/dma/sh/shdmac.c 	if (*len > schan->max_xfer_len)
schan             385 drivers/dma/sh/shdmac.c 		*len = schan->max_xfer_len;
schan             394 drivers/dma/sh/shdmac.c static void sh_dmae_halt(struct shdma_chan *schan)
schan             396 drivers/dma/sh/shdmac.c 	struct sh_dmae_chan *sh_chan = container_of(schan, struct sh_dmae_chan,
schan             401 drivers/dma/sh/shdmac.c static bool sh_dmae_chan_irq(struct shdma_chan *schan, int irq)
schan             403 drivers/dma/sh/shdmac.c 	struct sh_dmae_chan *sh_chan = container_of(schan, struct sh_dmae_chan,
schan             415 drivers/dma/sh/shdmac.c static size_t sh_dmae_get_partial(struct shdma_chan *schan,
schan             418 drivers/dma/sh/shdmac.c 	struct sh_dmae_chan *sh_chan = container_of(schan, struct sh_dmae_chan,
schan             453 drivers/dma/sh/shdmac.c static bool sh_dmae_desc_completed(struct shdma_chan *schan,
schan             456 drivers/dma/sh/shdmac.c 	struct sh_dmae_chan *sh_chan = container_of(schan,
schan             524 drivers/dma/sh/shdmac.c 	struct shdma_chan *schan;
schan             532 drivers/dma/sh/shdmac.c 	schan = &sh_chan->shdma_chan;
schan             533 drivers/dma/sh/shdmac.c 	schan->max_xfer_len = SH_DMA_TCR_MAX + 1;
schan             535 drivers/dma/sh/shdmac.c 	shdma_chan_probe(sdev, schan, id);
schan             547 drivers/dma/sh/shdmac.c 	err = shdma_request_irq(schan, irq, flags, sh_chan->dev_id);
schan             560 drivers/dma/sh/shdmac.c 	shdma_chan_remove(schan);
schan             566 drivers/dma/sh/shdmac.c 	struct shdma_chan *schan;
schan             569 drivers/dma/sh/shdmac.c 	shdma_for_each_chan(schan, &shdev->shdma_dev, i) {
schan             570 drivers/dma/sh/shdmac.c 		BUG_ON(!schan);
schan             572 drivers/dma/sh/shdmac.c 		shdma_chan_remove(schan);
schan             636 drivers/dma/sh/shdmac.c static dma_addr_t sh_dmae_slave_addr(struct shdma_chan *schan)
schan             638 drivers/dma/sh/shdmac.c 	struct sh_dmae_chan *sh_chan = container_of(schan,
schan             158 drivers/dma/sirf-dma.c 	struct sirfsoc_dma_chan *schan = dma_chan_to_sirfsoc_dma_chan(c);
schan             159 drivers/dma/sirf-dma.c 	return container_of(schan, struct sirfsoc_dma, channels[c->chan_id]);
schan             236 drivers/dma/sirf-dma.c static void sirfsoc_dma_execute(struct sirfsoc_dma_chan *schan)
schan             238 drivers/dma/sirf-dma.c 	struct sirfsoc_dma *sdma = dma_chan_to_sirfsoc_dma(&schan->chan);
schan             239 drivers/dma/sirf-dma.c 	int cid = schan->chan.chan_id;
schan             248 drivers/dma/sirf-dma.c 	sdesc = list_first_entry(&schan->queued, struct sirfsoc_dma_desc,
schan             251 drivers/dma/sirf-dma.c 	list_move_tail(&sdesc->node, &schan->active);
schan             257 drivers/dma/sirf-dma.c 	sdma->exec_desc(sdesc, cid, schan->mode, base);
schan             260 drivers/dma/sirf-dma.c 		schan->happened_cyclic = schan->completed_cyclic = 0;
schan             267 drivers/dma/sirf-dma.c 	struct sirfsoc_dma_chan *schan;
schan             282 drivers/dma/sirf-dma.c 			schan = &sdma->channels[ch];
schan             283 drivers/dma/sirf-dma.c 			spin_lock(&schan->lock);
schan             284 drivers/dma/sirf-dma.c 			sdesc = list_first_entry(&schan->active,
schan             288 drivers/dma/sirf-dma.c 				list_splice_tail_init(&schan->active,
schan             289 drivers/dma/sirf-dma.c 						      &schan->completed);
schan             291 drivers/dma/sirf-dma.c 				if (!list_empty(&schan->queued))
schan             292 drivers/dma/sirf-dma.c 					sirfsoc_dma_execute(schan);
schan             294 drivers/dma/sirf-dma.c 				schan->happened_cyclic++;
schan             295 drivers/dma/sirf-dma.c 			spin_unlock(&schan->lock);
schan             304 drivers/dma/sirf-dma.c 		schan = &sdma->channels[0];
schan             305 drivers/dma/sirf-dma.c 		spin_lock(&schan->lock);
schan             306 drivers/dma/sirf-dma.c 		sdesc = list_first_entry(&schan->active,
schan             314 drivers/dma/sirf-dma.c 				list_splice_tail_init(&schan->active,
schan             315 drivers/dma/sirf-dma.c 						      &schan->completed);
schan             317 drivers/dma/sirf-dma.c 				if (!list_empty(&schan->queued))
schan             318 drivers/dma/sirf-dma.c 					sirfsoc_dma_execute(schan);
schan             322 drivers/dma/sirf-dma.c 			schan->happened_cyclic++;
schan             324 drivers/dma/sirf-dma.c 		spin_unlock(&schan->lock);
schan             341 drivers/dma/sirf-dma.c 	struct sirfsoc_dma_chan *schan;
schan             350 drivers/dma/sirf-dma.c 		schan = &sdma->channels[i];
schan             353 drivers/dma/sirf-dma.c 		spin_lock_irqsave(&schan->lock, flags);
schan             354 drivers/dma/sirf-dma.c 		if (!list_empty(&schan->completed)) {
schan             355 drivers/dma/sirf-dma.c 			list_splice_tail_init(&schan->completed, &list);
schan             356 drivers/dma/sirf-dma.c 			spin_unlock_irqrestore(&schan->lock, flags);
schan             368 drivers/dma/sirf-dma.c 			spin_lock_irqsave(&schan->lock, flags);
schan             369 drivers/dma/sirf-dma.c 			list_splice_tail_init(&list, &schan->free);
schan             370 drivers/dma/sirf-dma.c 			schan->chan.completed_cookie = last_cookie;
schan             371 drivers/dma/sirf-dma.c 			spin_unlock_irqrestore(&schan->lock, flags);
schan             373 drivers/dma/sirf-dma.c 			if (list_empty(&schan->active)) {
schan             374 drivers/dma/sirf-dma.c 				spin_unlock_irqrestore(&schan->lock, flags);
schan             379 drivers/dma/sirf-dma.c 			sdesc = list_first_entry(&schan->active,
schan             383 drivers/dma/sirf-dma.c 			happened_cyclic = schan->happened_cyclic;
schan             384 drivers/dma/sirf-dma.c 			spin_unlock_irqrestore(&schan->lock, flags);
schan             387 drivers/dma/sirf-dma.c 			while (happened_cyclic != schan->completed_cyclic) {
schan             389 drivers/dma/sirf-dma.c 				schan->completed_cyclic++;
schan             406 drivers/dma/sirf-dma.c 	struct sirfsoc_dma_chan *schan = dma_chan_to_sirfsoc_dma_chan(txd->chan);
schan             413 drivers/dma/sirf-dma.c 	spin_lock_irqsave(&schan->lock, flags);
schan             416 drivers/dma/sirf-dma.c 	list_move_tail(&sdesc->node, &schan->queued);
schan             420 drivers/dma/sirf-dma.c 	spin_unlock_irqrestore(&schan->lock, flags);
schan             428 drivers/dma/sirf-dma.c 	struct sirfsoc_dma_chan *schan = dma_chan_to_sirfsoc_dma_chan(chan);
schan             435 drivers/dma/sirf-dma.c 	spin_lock_irqsave(&schan->lock, flags);
schan             436 drivers/dma/sirf-dma.c 	schan->mode = (config->src_maxburst == 4 ? 1 : 0);
schan             437 drivers/dma/sirf-dma.c 	spin_unlock_irqrestore(&schan->lock, flags);
schan             444 drivers/dma/sirf-dma.c 	struct sirfsoc_dma_chan *schan = dma_chan_to_sirfsoc_dma_chan(chan);
schan             445 drivers/dma/sirf-dma.c 	struct sirfsoc_dma *sdma = dma_chan_to_sirfsoc_dma(&schan->chan);
schan             446 drivers/dma/sirf-dma.c 	int cid = schan->chan.chan_id;
schan             449 drivers/dma/sirf-dma.c 	spin_lock_irqsave(&schan->lock, flags);
schan             480 drivers/dma/sirf-dma.c 	list_splice_tail_init(&schan->active, &schan->free);
schan             481 drivers/dma/sirf-dma.c 	list_splice_tail_init(&schan->queued, &schan->free);
schan             483 drivers/dma/sirf-dma.c 	spin_unlock_irqrestore(&schan->lock, flags);
schan             490 drivers/dma/sirf-dma.c 	struct sirfsoc_dma_chan *schan = dma_chan_to_sirfsoc_dma_chan(chan);
schan             491 drivers/dma/sirf-dma.c 	struct sirfsoc_dma *sdma = dma_chan_to_sirfsoc_dma(&schan->chan);
schan             492 drivers/dma/sirf-dma.c 	int cid = schan->chan.chan_id;
schan             495 drivers/dma/sirf-dma.c 	spin_lock_irqsave(&schan->lock, flags);
schan             517 drivers/dma/sirf-dma.c 	spin_unlock_irqrestore(&schan->lock, flags);
schan             524 drivers/dma/sirf-dma.c 	struct sirfsoc_dma_chan *schan = dma_chan_to_sirfsoc_dma_chan(chan);
schan             525 drivers/dma/sirf-dma.c 	struct sirfsoc_dma *sdma = dma_chan_to_sirfsoc_dma(&schan->chan);
schan             526 drivers/dma/sirf-dma.c 	int cid = schan->chan.chan_id;
schan             529 drivers/dma/sirf-dma.c 	spin_lock_irqsave(&schan->lock, flags);
schan             550 drivers/dma/sirf-dma.c 	spin_unlock_irqrestore(&schan->lock, flags);
schan             559 drivers/dma/sirf-dma.c 	struct sirfsoc_dma_chan *schan = dma_chan_to_sirfsoc_dma_chan(chan);
schan             587 drivers/dma/sirf-dma.c 	spin_lock_irqsave(&schan->lock, flags);
schan             589 drivers/dma/sirf-dma.c 	list_splice_tail_init(&descs, &schan->free);
schan             590 drivers/dma/sirf-dma.c 	spin_unlock_irqrestore(&schan->lock, flags);
schan             598 drivers/dma/sirf-dma.c 	struct sirfsoc_dma_chan *schan = dma_chan_to_sirfsoc_dma_chan(chan);
schan             604 drivers/dma/sirf-dma.c 	spin_lock_irqsave(&schan->lock, flags);
schan             607 drivers/dma/sirf-dma.c 	BUG_ON(!list_empty(&schan->prepared));
schan             608 drivers/dma/sirf-dma.c 	BUG_ON(!list_empty(&schan->queued));
schan             609 drivers/dma/sirf-dma.c 	BUG_ON(!list_empty(&schan->active));
schan             610 drivers/dma/sirf-dma.c 	BUG_ON(!list_empty(&schan->completed));
schan             613 drivers/dma/sirf-dma.c 	list_splice_tail_init(&schan->free, &descs);
schan             615 drivers/dma/sirf-dma.c 	spin_unlock_irqrestore(&schan->lock, flags);
schan             627 drivers/dma/sirf-dma.c 	struct sirfsoc_dma_chan *schan = dma_chan_to_sirfsoc_dma_chan(chan);
schan             630 drivers/dma/sirf-dma.c 	spin_lock_irqsave(&schan->lock, flags);
schan             632 drivers/dma/sirf-dma.c 	if (list_empty(&schan->active) && !list_empty(&schan->queued))
schan             633 drivers/dma/sirf-dma.c 		sirfsoc_dma_execute(schan);
schan             635 drivers/dma/sirf-dma.c 	spin_unlock_irqrestore(&schan->lock, flags);
schan             644 drivers/dma/sirf-dma.c 	struct sirfsoc_dma_chan *schan = dma_chan_to_sirfsoc_dma_chan(chan);
schan             648 drivers/dma/sirf-dma.c 	int cid = schan->chan.chan_id;
schan             653 drivers/dma/sirf-dma.c 	spin_lock_irqsave(&schan->lock, flags);
schan             655 drivers/dma/sirf-dma.c 	if (list_empty(&schan->active)) {
schan             658 drivers/dma/sirf-dma.c 		spin_unlock_irqrestore(&schan->lock, flags);
schan             661 drivers/dma/sirf-dma.c 	sdesc = list_first_entry(&schan->active, struct sirfsoc_dma_desc, node);
schan             683 drivers/dma/sirf-dma.c 	spin_unlock_irqrestore(&schan->lock, flags);
schan             693 drivers/dma/sirf-dma.c 	struct sirfsoc_dma_chan *schan = dma_chan_to_sirfsoc_dma_chan(chan);
schan             704 drivers/dma/sirf-dma.c 	spin_lock_irqsave(&schan->lock, iflags);
schan             705 drivers/dma/sirf-dma.c 	if (!list_empty(&schan->free)) {
schan             706 drivers/dma/sirf-dma.c 		sdesc = list_first_entry(&schan->free, struct sirfsoc_dma_desc,
schan             710 drivers/dma/sirf-dma.c 	spin_unlock_irqrestore(&schan->lock, iflags);
schan             720 drivers/dma/sirf-dma.c 	spin_lock_irqsave(&schan->lock, iflags);
schan             740 drivers/dma/sirf-dma.c 		list_add_tail(&sdesc->node, &schan->prepared);
schan             746 drivers/dma/sirf-dma.c 	spin_unlock_irqrestore(&schan->lock, iflags);
schan             750 drivers/dma/sirf-dma.c 	spin_unlock_irqrestore(&schan->lock, iflags);
schan             761 drivers/dma/sirf-dma.c 	struct sirfsoc_dma_chan *schan = dma_chan_to_sirfsoc_dma_chan(chan);
schan             780 drivers/dma/sirf-dma.c 	spin_lock_irqsave(&schan->lock, iflags);
schan             781 drivers/dma/sirf-dma.c 	if (!list_empty(&schan->free)) {
schan             782 drivers/dma/sirf-dma.c 		sdesc = list_first_entry(&schan->free, struct sirfsoc_dma_desc,
schan             786 drivers/dma/sirf-dma.c 	spin_unlock_irqrestore(&schan->lock, iflags);
schan             792 drivers/dma/sirf-dma.c 	spin_lock_irqsave(&schan->lock, iflags);
schan             798 drivers/dma/sirf-dma.c 	list_add_tail(&sdesc->node, &schan->prepared);
schan             799 drivers/dma/sirf-dma.c 	spin_unlock_irqrestore(&schan->lock, iflags);
schan             845 drivers/dma/sirf-dma.c 	struct sirfsoc_dma_chan *schan;
schan             926 drivers/dma/sirf-dma.c 		schan = &sdma->channels[i];
schan             928 drivers/dma/sirf-dma.c 		schan->chan.device = dma;
schan             929 drivers/dma/sirf-dma.c 		dma_cookie_init(&schan->chan);
schan             931 drivers/dma/sirf-dma.c 		INIT_LIST_HEAD(&schan->free);
schan             932 drivers/dma/sirf-dma.c 		INIT_LIST_HEAD(&schan->prepared);
schan             933 drivers/dma/sirf-dma.c 		INIT_LIST_HEAD(&schan->queued);
schan             934 drivers/dma/sirf-dma.c 		INIT_LIST_HEAD(&schan->active);
schan             935 drivers/dma/sirf-dma.c 		INIT_LIST_HEAD(&schan->completed);
schan             937 drivers/dma/sirf-dma.c 		spin_lock_init(&schan->lock);
schan             938 drivers/dma/sirf-dma.c 		list_add_tail(&schan->chan.device_node, &dma->channels);
schan            1013 drivers/dma/sirf-dma.c 	struct sirfsoc_dma_chan *schan;
schan            1042 drivers/dma/sirf-dma.c 		schan = &sdma->channels[ch];
schan            1043 drivers/dma/sirf-dma.c 		if (list_empty(&schan->active))
schan            1061 drivers/dma/sirf-dma.c 	struct sirfsoc_dma_chan *schan;
schan            1085 drivers/dma/sirf-dma.c 		schan = &sdma->channels[ch];
schan            1086 drivers/dma/sirf-dma.c 		if (list_empty(&schan->active))
schan            1088 drivers/dma/sirf-dma.c 		sdesc = list_first_entry(&schan->active,
schan             228 drivers/dma/sprd-dma.c 	struct sprd_dma_chn *schan = to_sprd_dma_chan(c);
schan             230 drivers/dma/sprd-dma.c 	return container_of(schan, struct sprd_dma_dev, channels[c->chan_id]);
schan             248 drivers/dma/sprd-dma.c static void sprd_dma_chn_update(struct sprd_dma_chn *schan, u32 reg,
schan             251 drivers/dma/sprd-dma.c 	u32 orig = readl(schan->chn_base + reg);
schan             255 drivers/dma/sprd-dma.c 	writel(tmp, schan->chn_base + reg);
schan             287 drivers/dma/sprd-dma.c static void sprd_dma_set_uid(struct sprd_dma_chn *schan)
schan             289 drivers/dma/sprd-dma.c 	struct sprd_dma_dev *sdev = to_sprd_dma_dev(&schan->vc.chan);
schan             290 drivers/dma/sprd-dma.c 	u32 dev_id = schan->dev_id;
schan             296 drivers/dma/sprd-dma.c 		writel(schan->chn_num + 1, sdev->glb_base + uid_offset);
schan             300 drivers/dma/sprd-dma.c static void sprd_dma_unset_uid(struct sprd_dma_chn *schan)
schan             302 drivers/dma/sprd-dma.c 	struct sprd_dma_dev *sdev = to_sprd_dma_dev(&schan->vc.chan);
schan             303 drivers/dma/sprd-dma.c 	u32 dev_id = schan->dev_id;
schan             313 drivers/dma/sprd-dma.c static void sprd_dma_clear_int(struct sprd_dma_chn *schan)
schan             315 drivers/dma/sprd-dma.c 	sprd_dma_chn_update(schan, SPRD_DMA_CHN_INTC,
schan             320 drivers/dma/sprd-dma.c static void sprd_dma_enable_chn(struct sprd_dma_chn *schan)
schan             322 drivers/dma/sprd-dma.c 	sprd_dma_chn_update(schan, SPRD_DMA_CHN_CFG, SPRD_DMA_CHN_EN,
schan             326 drivers/dma/sprd-dma.c static void sprd_dma_disable_chn(struct sprd_dma_chn *schan)
schan             328 drivers/dma/sprd-dma.c 	sprd_dma_chn_update(schan, SPRD_DMA_CHN_CFG, SPRD_DMA_CHN_EN, 0);
schan             331 drivers/dma/sprd-dma.c static void sprd_dma_soft_request(struct sprd_dma_chn *schan)
schan             333 drivers/dma/sprd-dma.c 	sprd_dma_chn_update(schan, SPRD_DMA_CHN_REQ, SPRD_DMA_REQ_EN,
schan             337 drivers/dma/sprd-dma.c static void sprd_dma_pause_resume(struct sprd_dma_chn *schan, bool enable)
schan             339 drivers/dma/sprd-dma.c 	struct sprd_dma_dev *sdev = to_sprd_dma_dev(&schan->vc.chan);
schan             343 drivers/dma/sprd-dma.c 		sprd_dma_chn_update(schan, SPRD_DMA_CHN_PAUSE,
schan             347 drivers/dma/sprd-dma.c 			pause = readl(schan->chn_base + SPRD_DMA_CHN_PAUSE);
schan             358 drivers/dma/sprd-dma.c 		sprd_dma_chn_update(schan, SPRD_DMA_CHN_PAUSE,
schan             363 drivers/dma/sprd-dma.c static void sprd_dma_stop_and_disable(struct sprd_dma_chn *schan)
schan             365 drivers/dma/sprd-dma.c 	u32 cfg = readl(schan->chn_base + SPRD_DMA_CHN_CFG);
schan             370 drivers/dma/sprd-dma.c 	sprd_dma_pause_resume(schan, true);
schan             371 drivers/dma/sprd-dma.c 	sprd_dma_disable_chn(schan);
schan             374 drivers/dma/sprd-dma.c static unsigned long sprd_dma_get_src_addr(struct sprd_dma_chn *schan)
schan             378 drivers/dma/sprd-dma.c 	addr = readl(schan->chn_base + SPRD_DMA_CHN_SRC_ADDR);
schan             379 drivers/dma/sprd-dma.c 	addr_high = readl(schan->chn_base + SPRD_DMA_CHN_WARP_PTR) &
schan             385 drivers/dma/sprd-dma.c static unsigned long sprd_dma_get_dst_addr(struct sprd_dma_chn *schan)
schan             389 drivers/dma/sprd-dma.c 	addr = readl(schan->chn_base + SPRD_DMA_CHN_DES_ADDR);
schan             390 drivers/dma/sprd-dma.c 	addr_high = readl(schan->chn_base + SPRD_DMA_CHN_WARP_TO) &
schan             396 drivers/dma/sprd-dma.c static enum sprd_dma_int_type sprd_dma_get_int_type(struct sprd_dma_chn *schan)
schan             398 drivers/dma/sprd-dma.c 	struct sprd_dma_dev *sdev = to_sprd_dma_dev(&schan->vc.chan);
schan             399 drivers/dma/sprd-dma.c 	u32 intc_sts = readl(schan->chn_base + SPRD_DMA_CHN_INTC) &
schan             424 drivers/dma/sprd-dma.c static enum sprd_dma_req_mode sprd_dma_get_req_type(struct sprd_dma_chn *schan)
schan             426 drivers/dma/sprd-dma.c 	u32 frag_reg = readl(schan->chn_base + SPRD_DMA_CHN_FRG_LEN);
schan             431 drivers/dma/sprd-dma.c static int sprd_dma_set_2stage_config(struct sprd_dma_chn *schan)
schan             433 drivers/dma/sprd-dma.c 	struct sprd_dma_dev *sdev = to_sprd_dma_dev(&schan->vc.chan);
schan             434 drivers/dma/sprd-dma.c 	u32 val, chn = schan->chn_num + 1;
schan             436 drivers/dma/sprd-dma.c 	switch (schan->chn_mode) {
schan             439 drivers/dma/sprd-dma.c 		val |= BIT(schan->trg_mode - 1) << SPRD_DMA_GLB_TRG_OFFSET;
schan             441 drivers/dma/sprd-dma.c 		if (schan->int_type != SPRD_DMA_NO_INT)
schan             449 drivers/dma/sprd-dma.c 		val |= BIT(schan->trg_mode - 1) << SPRD_DMA_GLB_TRG_OFFSET;
schan             451 drivers/dma/sprd-dma.c 		if (schan->int_type != SPRD_DMA_NO_INT)
schan             461 drivers/dma/sprd-dma.c 		if (schan->int_type != SPRD_DMA_NO_INT)
schan             471 drivers/dma/sprd-dma.c 		if (schan->int_type != SPRD_DMA_NO_INT)
schan             479 drivers/dma/sprd-dma.c 			schan->chn_mode);
schan             486 drivers/dma/sprd-dma.c static void sprd_dma_set_chn_config(struct sprd_dma_chn *schan,
schan             491 drivers/dma/sprd-dma.c 	writel(cfg->pause, schan->chn_base + SPRD_DMA_CHN_PAUSE);
schan             492 drivers/dma/sprd-dma.c 	writel(cfg->cfg, schan->chn_base + SPRD_DMA_CHN_CFG);
schan             493 drivers/dma/sprd-dma.c 	writel(cfg->intc, schan->chn_base + SPRD_DMA_CHN_INTC);
schan             494 drivers/dma/sprd-dma.c 	writel(cfg->src_addr, schan->chn_base + SPRD_DMA_CHN_SRC_ADDR);
schan             495 drivers/dma/sprd-dma.c 	writel(cfg->des_addr, schan->chn_base + SPRD_DMA_CHN_DES_ADDR);
schan             496 drivers/dma/sprd-dma.c 	writel(cfg->frg_len, schan->chn_base + SPRD_DMA_CHN_FRG_LEN);
schan             497 drivers/dma/sprd-dma.c 	writel(cfg->blk_len, schan->chn_base + SPRD_DMA_CHN_BLK_LEN);
schan             498 drivers/dma/sprd-dma.c 	writel(cfg->trsc_len, schan->chn_base + SPRD_DMA_CHN_TRSC_LEN);
schan             499 drivers/dma/sprd-dma.c 	writel(cfg->trsf_step, schan->chn_base + SPRD_DMA_CHN_TRSF_STEP);
schan             500 drivers/dma/sprd-dma.c 	writel(cfg->wrap_ptr, schan->chn_base + SPRD_DMA_CHN_WARP_PTR);
schan             501 drivers/dma/sprd-dma.c 	writel(cfg->wrap_to, schan->chn_base + SPRD_DMA_CHN_WARP_TO);
schan             502 drivers/dma/sprd-dma.c 	writel(cfg->llist_ptr, schan->chn_base + SPRD_DMA_CHN_LLIST_PTR);
schan             503 drivers/dma/sprd-dma.c 	writel(cfg->frg_step, schan->chn_base + SPRD_DMA_CHN_FRAG_STEP);
schan             504 drivers/dma/sprd-dma.c 	writel(cfg->src_blk_step, schan->chn_base + SPRD_DMA_CHN_SRC_BLK_STEP);
schan             505 drivers/dma/sprd-dma.c 	writel(cfg->des_blk_step, schan->chn_base + SPRD_DMA_CHN_DES_BLK_STEP);
schan             506 drivers/dma/sprd-dma.c 	writel(cfg->req, schan->chn_base + SPRD_DMA_CHN_REQ);
schan             509 drivers/dma/sprd-dma.c static void sprd_dma_start(struct sprd_dma_chn *schan)
schan             511 drivers/dma/sprd-dma.c 	struct virt_dma_desc *vd = vchan_next_desc(&schan->vc);
schan             517 drivers/dma/sprd-dma.c 	schan->cur_desc = to_sprd_dma_desc(vd);
schan             523 drivers/dma/sprd-dma.c 	if (schan->chn_mode && sprd_dma_set_2stage_config(schan))
schan             530 drivers/dma/sprd-dma.c 	sprd_dma_set_chn_config(schan, schan->cur_desc);
schan             531 drivers/dma/sprd-dma.c 	sprd_dma_set_uid(schan);
schan             532 drivers/dma/sprd-dma.c 	sprd_dma_enable_chn(schan);
schan             534 drivers/dma/sprd-dma.c 	if (schan->dev_id == SPRD_DMA_SOFTWARE_UID &&
schan             535 drivers/dma/sprd-dma.c 	    schan->chn_mode != SPRD_DMA_DST_CHN0 &&
schan             536 drivers/dma/sprd-dma.c 	    schan->chn_mode != SPRD_DMA_DST_CHN1)
schan             537 drivers/dma/sprd-dma.c 		sprd_dma_soft_request(schan);
schan             540 drivers/dma/sprd-dma.c static void sprd_dma_stop(struct sprd_dma_chn *schan)
schan             542 drivers/dma/sprd-dma.c 	sprd_dma_stop_and_disable(schan);
schan             543 drivers/dma/sprd-dma.c 	sprd_dma_unset_uid(schan);
schan             544 drivers/dma/sprd-dma.c 	sprd_dma_clear_int(schan);
schan             545 drivers/dma/sprd-dma.c 	schan->cur_desc = NULL;
schan             565 drivers/dma/sprd-dma.c 	struct sprd_dma_chn *schan;
schan             575 drivers/dma/sprd-dma.c 		schan = &sdev->channels[i];
schan             577 drivers/dma/sprd-dma.c 		spin_lock(&schan->vc.lock);
schan             579 drivers/dma/sprd-dma.c 		sdesc = schan->cur_desc;
schan             581 drivers/dma/sprd-dma.c 			spin_unlock(&schan->vc.lock);
schan             585 drivers/dma/sprd-dma.c 		int_type = sprd_dma_get_int_type(schan);
schan             586 drivers/dma/sprd-dma.c 		req_type = sprd_dma_get_req_type(schan);
schan             587 drivers/dma/sprd-dma.c 		sprd_dma_clear_int(schan);
schan             590 drivers/dma/sprd-dma.c 		cyclic = schan->linklist.phy_addr ? true : false;
schan             599 drivers/dma/sprd-dma.c 				schan->cur_desc = NULL;
schan             600 drivers/dma/sprd-dma.c 				sprd_dma_start(schan);
schan             603 drivers/dma/sprd-dma.c 		spin_unlock(&schan->vc.lock);
schan             616 drivers/dma/sprd-dma.c 	struct sprd_dma_chn *schan = to_sprd_dma_chan(chan);
schan             620 drivers/dma/sprd-dma.c 	spin_lock_irqsave(&schan->vc.lock, flags);
schan             621 drivers/dma/sprd-dma.c 	if (schan->cur_desc)
schan             622 drivers/dma/sprd-dma.c 		cur_vd = &schan->cur_desc->vd;
schan             624 drivers/dma/sprd-dma.c 	sprd_dma_stop(schan);
schan             625 drivers/dma/sprd-dma.c 	spin_unlock_irqrestore(&schan->vc.lock, flags);
schan             630 drivers/dma/sprd-dma.c 	vchan_free_chan_resources(&schan->vc);
schan             638 drivers/dma/sprd-dma.c 	struct sprd_dma_chn *schan = to_sprd_dma_chan(chan);
schan             648 drivers/dma/sprd-dma.c 	spin_lock_irqsave(&schan->vc.lock, flags);
schan             649 drivers/dma/sprd-dma.c 	vd = vchan_find_desc(&schan->vc, cookie);
schan             662 drivers/dma/sprd-dma.c 	} else if (schan->cur_desc && schan->cur_desc->vd.tx.cookie == cookie) {
schan             663 drivers/dma/sprd-dma.c 		struct sprd_dma_desc *sdesc = schan->cur_desc;
schan             666 drivers/dma/sprd-dma.c 			pos = sprd_dma_get_dst_addr(schan);
schan             668 drivers/dma/sprd-dma.c 			pos = sprd_dma_get_src_addr(schan);
schan             672 drivers/dma/sprd-dma.c 	spin_unlock_irqrestore(&schan->vc.lock, flags);
schan             680 drivers/dma/sprd-dma.c 	struct sprd_dma_chn *schan = to_sprd_dma_chan(chan);
schan             683 drivers/dma/sprd-dma.c 	spin_lock_irqsave(&schan->vc.lock, flags);
schan             684 drivers/dma/sprd-dma.c 	if (vchan_issue_pending(&schan->vc) && !schan->cur_desc)
schan             685 drivers/dma/sprd-dma.c 		sprd_dma_start(schan);
schan             686 drivers/dma/sprd-dma.c 	spin_unlock_irqrestore(&schan->vc.lock, flags);
schan             726 drivers/dma/sprd-dma.c 	struct sprd_dma_chn *schan = to_sprd_dma_chan(chan);
schan             727 drivers/dma/sprd-dma.c 	enum sprd_dma_chn_mode chn_mode = schan->chn_mode;
schan             772 drivers/dma/sprd-dma.c 		schan->dev_id = slave_cfg->slave_id;
schan             818 drivers/dma/sprd-dma.c 	if (schan->linklist.phy_addr) {
schan             830 drivers/dma/sprd-dma.c 		llist_ptr = schan->linklist.phy_addr + temp;
schan             851 drivers/dma/sprd-dma.c 	struct sprd_dma_chn *schan = to_sprd_dma_chan(chan);
schan             854 drivers/dma/sprd-dma.c 	if (!schan->linklist.virt_addr)
schan             857 drivers/dma/sprd-dma.c 	hw = (struct sprd_dma_chn_hw *)(schan->linklist.virt_addr +
schan             868 drivers/dma/sprd-dma.c 	struct sprd_dma_chn *schan = to_sprd_dma_chan(chan);
schan             916 drivers/dma/sprd-dma.c 	return vchan_tx_prep(&schan->vc, &sdesc->vd, flags);
schan             924 drivers/dma/sprd-dma.c 	struct sprd_dma_chn *schan = to_sprd_dma_chan(chan);
schan             925 drivers/dma/sprd-dma.c 	struct dma_slave_config *slave_cfg = &schan->slave_cfg;
schan             940 drivers/dma/sprd-dma.c 		schan->linklist.phy_addr = ll_cfg->phy_addr;
schan             941 drivers/dma/sprd-dma.c 		schan->linklist.virt_addr = ll_cfg->virt_addr;
schan             943 drivers/dma/sprd-dma.c 		schan->linklist.phy_addr = 0;
schan             944 drivers/dma/sprd-dma.c 		schan->linklist.virt_addr = 0;
schan             951 drivers/dma/sprd-dma.c 	schan->chn_mode =
schan             953 drivers/dma/sprd-dma.c 	schan->trg_mode =
schan             955 drivers/dma/sprd-dma.c 	schan->int_type = flags & SPRD_DMA_INT_TYPE_MASK;
schan            1002 drivers/dma/sprd-dma.c 	return vchan_tx_prep(&schan->vc, &sdesc->vd, flags);
schan            1008 drivers/dma/sprd-dma.c 	struct sprd_dma_chn *schan = to_sprd_dma_chan(chan);
schan            1009 drivers/dma/sprd-dma.c 	struct dma_slave_config *slave_cfg = &schan->slave_cfg;
schan            1017 drivers/dma/sprd-dma.c 	struct sprd_dma_chn *schan = to_sprd_dma_chan(chan);
schan            1020 drivers/dma/sprd-dma.c 	spin_lock_irqsave(&schan->vc.lock, flags);
schan            1021 drivers/dma/sprd-dma.c 	sprd_dma_pause_resume(schan, true);
schan            1022 drivers/dma/sprd-dma.c 	spin_unlock_irqrestore(&schan->vc.lock, flags);
schan            1029 drivers/dma/sprd-dma.c 	struct sprd_dma_chn *schan = to_sprd_dma_chan(chan);
schan            1032 drivers/dma/sprd-dma.c 	spin_lock_irqsave(&schan->vc.lock, flags);
schan            1033 drivers/dma/sprd-dma.c 	sprd_dma_pause_resume(schan, false);
schan            1034 drivers/dma/sprd-dma.c 	spin_unlock_irqrestore(&schan->vc.lock, flags);
schan            1041 drivers/dma/sprd-dma.c 	struct sprd_dma_chn *schan = to_sprd_dma_chan(chan);
schan            1046 drivers/dma/sprd-dma.c 	spin_lock_irqsave(&schan->vc.lock, flags);
schan            1047 drivers/dma/sprd-dma.c 	if (schan->cur_desc)
schan            1048 drivers/dma/sprd-dma.c 		cur_vd = &schan->cur_desc->vd;
schan            1050 drivers/dma/sprd-dma.c 	sprd_dma_stop(schan);
schan            1052 drivers/dma/sprd-dma.c 	vchan_get_all_descriptors(&schan->vc, &head);
schan            1053 drivers/dma/sprd-dma.c 	spin_unlock_irqrestore(&schan->vc.lock, flags);
schan            1058 drivers/dma/sprd-dma.c 	vchan_dma_desc_free_list(&schan->vc, &head);
schan            1071 drivers/dma/sprd-dma.c 	struct sprd_dma_chn *schan = to_sprd_dma_chan(chan);
schan            1074 drivers/dma/sprd-dma.c 	schan->dev_id = slave_id;
schan             126 drivers/iio/afe/iio-rescale.c 	struct iio_chan_spec const *schan = rescale->source->channel;
schan             129 drivers/iio/afe/iio-rescale.c 	chan->output = schan->output;
schan             133 drivers/iio/afe/iio-rescale.c 	if (!iio_channel_has_info(schan, IIO_CHAN_INFO_RAW) ||
schan             134 drivers/iio/afe/iio-rescale.c 	    !iio_channel_has_info(schan, IIO_CHAN_INFO_SCALE)) {
schan             142 drivers/iio/afe/iio-rescale.c 	if (iio_channel_has_available(schan, IIO_CHAN_INFO_RAW))
schan             590 drivers/media/dvb-frontends/dib3000mc.c 	struct dtv_frontend_properties schan;
schan             592 drivers/media/dvb-frontends/dib3000mc.c 	schan = *chan;
schan             597 drivers/media/dvb-frontends/dib3000mc.c 	schan.transmission_mode = TRANSMISSION_MODE_8K;
schan             598 drivers/media/dvb-frontends/dib3000mc.c 	schan.guard_interval = GUARD_INTERVAL_1_32;
schan             599 drivers/media/dvb-frontends/dib3000mc.c 	schan.modulation = QAM_64;
schan             600 drivers/media/dvb-frontends/dib3000mc.c 	schan.code_rate_HP = FEC_2_3;
schan             601 drivers/media/dvb-frontends/dib3000mc.c 	schan.code_rate_LP = FEC_2_3;
schan             602 drivers/media/dvb-frontends/dib3000mc.c 	schan.hierarchy = 0;
schan             604 drivers/media/dvb-frontends/dib3000mc.c 	dib3000mc_set_channel_cfg(state, &schan, 11);
schan             968 drivers/media/dvb-frontends/dib7000m.c 	struct dtv_frontend_properties schan;
schan             972 drivers/media/dvb-frontends/dib7000m.c 	schan = *ch;
schan             974 drivers/media/dvb-frontends/dib7000m.c 	schan.modulation = QAM_64;
schan             975 drivers/media/dvb-frontends/dib7000m.c 	schan.guard_interval        = GUARD_INTERVAL_1_32;
schan             976 drivers/media/dvb-frontends/dib7000m.c 	schan.transmission_mode         = TRANSMISSION_MODE_8K;
schan             977 drivers/media/dvb-frontends/dib7000m.c 	schan.code_rate_HP = FEC_2_3;
schan             978 drivers/media/dvb-frontends/dib7000m.c 	schan.code_rate_LP = FEC_3_4;
schan             979 drivers/media/dvb-frontends/dib7000m.c 	schan.hierarchy    = 0;
schan             981 drivers/media/dvb-frontends/dib7000m.c 	dib7000m_set_channel(state, &schan, 7);
schan             983 drivers/media/dvb-frontends/dib7000m.c 	factor = BANDWIDTH_TO_KHZ(schan.bandwidth_hz);
schan            1134 drivers/media/dvb-frontends/dib7000p.c 	struct dtv_frontend_properties schan;
schan            1138 drivers/media/dvb-frontends/dib7000p.c 	schan = *ch;
schan            1139 drivers/media/dvb-frontends/dib7000p.c 	schan.modulation = QAM_64;
schan            1140 drivers/media/dvb-frontends/dib7000p.c 	schan.guard_interval = GUARD_INTERVAL_1_32;
schan            1141 drivers/media/dvb-frontends/dib7000p.c 	schan.transmission_mode = TRANSMISSION_MODE_8K;
schan            1142 drivers/media/dvb-frontends/dib7000p.c 	schan.code_rate_HP = FEC_2_3;
schan            1143 drivers/media/dvb-frontends/dib7000p.c 	schan.code_rate_LP = FEC_3_4;
schan            1144 drivers/media/dvb-frontends/dib7000p.c 	schan.hierarchy = 0;
schan            1146 drivers/media/dvb-frontends/dib7000p.c 	dib7000p_set_channel(state, &schan, 7);
schan             108 include/linux/shdma-base.h 	struct shdma_chan **schan;
schan             113 include/linux/shdma-base.h #define shdma_for_each_chan(c, d, i) for (i = 0, c = (d)->schan[0]; \
schan             114 include/linux/shdma-base.h 				i < (d)->dma_dev.chancnt; c = (d)->schan[++i])
schan             120 include/linux/shdma-base.h 			   struct shdma_chan *schan, int id);
schan             121 include/linux/shdma-base.h void shdma_chan_remove(struct shdma_chan *schan);