Lines Matching defs:rchan

866 	struct rcar_dmac_chan *rchan = to_rcar_dmac_chan(chan);
868 spin_lock_irqsave(&rchan->lock, flags);
869 rcar_dmac_clear_chcr_de(rchan);
870 spin_unlock_irqrestore(&rchan->lock, flags);
1056 struct rcar_dmac_chan *rchan = to_rcar_dmac_chan(chan);
1059 INIT_LIST_HEAD(&rchan->desc.chunks_free);
1060 INIT_LIST_HEAD(&rchan->desc.pages);
1063 ret = rcar_dmac_xfer_chunk_alloc(rchan, GFP_KERNEL);
1067 ret = rcar_dmac_desc_alloc(rchan, GFP_KERNEL);
1076 struct rcar_dmac_chan *rchan = to_rcar_dmac_chan(chan);
1078 struct rcar_dmac_chan_map *map = &rchan->map;
1084 spin_lock_irq(&rchan->lock);
1085 rcar_dmac_chan_halt(rchan);
1086 spin_unlock_irq(&rchan->lock);
1092 synchronize_irq(rchan->irq);
1094 if (rchan->mid_rid >= 0) {
1096 clear_bit(rchan->mid_rid, dmac->modules);
1097 rchan->mid_rid = -EINVAL;
1100 list_splice_init(&rchan->desc.free, &list);
1101 list_splice_init(&rchan->desc.pending, &list);
1102 list_splice_init(&rchan->desc.active, &list);
1103 list_splice_init(&rchan->desc.done, &list);
1104 list_splice_init(&rchan->desc.wait, &list);
1106 rchan->desc.running = NULL;
1109 rcar_dmac_realloc_hwdesc(rchan, desc, 0);
1111 list_for_each_entry_safe(page, _page, &rchan->desc.pages, node) {
1130 struct rcar_dmac_chan *rchan = to_rcar_dmac_chan(chan);
1142 return rcar_dmac_chan_prep_sg(rchan, &sgl, 1, dma_dest,
1149 struct rcar_dmac_chan *rchan = to_rcar_dmac_chan(chan);
1150 struct rcar_dmac_chan_map *map = &rchan->map;
1156 dev_addr = rchan->src.slave_addr;
1157 dev_size = rchan->src.xfer_size;
1160 dev_addr = rchan->dst.slave_addr;
1161 dev_size = rchan->dst.xfer_size;
1183 "chan%u: failed to map %zx@%pap", rchan->index,
1189 rchan->index, dev_size, &dev_addr, &map->addr,
1204 struct rcar_dmac_chan *rchan = to_rcar_dmac_chan(chan);
1207 if (rchan->mid_rid < 0 || !sg_len || !sg_dma_len(sgl)) {
1210 __func__, sg_len, rchan->mid_rid);
1217 return rcar_dmac_chan_prep_sg(rchan, sgl, sg_len, rchan->map.addr,
1228 struct rcar_dmac_chan *rchan = to_rcar_dmac_chan(chan);
1235 if (rchan->mid_rid < 0 || buf_len < period_len) {
1238 __func__, buf_len, period_len, rchan->mid_rid);
1249 rchan->index, sg_len, RCAR_DMAC_MAX_SG_LEN);
1272 desc = rcar_dmac_chan_prep_sg(rchan, sgl, sg_len, rchan->map.addr,
1282 struct rcar_dmac_chan *rchan = to_rcar_dmac_chan(chan);
1288 rchan->src.slave_addr = cfg->src_addr;
1289 rchan->dst.slave_addr = cfg->dst_addr;
1290 rchan->src.xfer_size = cfg->src_addr_width;
1291 rchan->dst.xfer_size = cfg->dst_addr_width;
1298 struct rcar_dmac_chan *rchan = to_rcar_dmac_chan(chan);
1301 spin_lock_irqsave(&rchan->lock, flags);
1302 rcar_dmac_chan_halt(rchan);
1303 spin_unlock_irqrestore(&rchan->lock, flags);
1310 rcar_dmac_chan_reinit(rchan);
1426 struct rcar_dmac_chan *rchan = to_rcar_dmac_chan(chan);
1436 spin_lock_irqsave(&rchan->lock, flags);
1437 residue = rcar_dmac_chan_get_residue(rchan, cookie);
1438 cyclic = rchan->desc.running ? rchan->desc.running->cyclic : false;
1439 spin_unlock_irqrestore(&rchan->lock, flags);
1452 struct rcar_dmac_chan *rchan = to_rcar_dmac_chan(chan);
1455 spin_lock_irqsave(&rchan->lock, flags);
1457 if (list_empty(&rchan->desc.pending))
1461 list_splice_tail_init(&rchan->desc.pending, &rchan->desc.active);
1467 if (!rchan->desc.running) {
1470 desc = list_first_entry(&rchan->desc.active,
1472 rchan->desc.running = desc;
1474 rcar_dmac_chan_start_xfer(rchan);
1478 spin_unlock_irqrestore(&rchan->lock, flags);
1483 struct rcar_dmac_chan *rchan = to_rcar_dmac_chan(chan);
1485 synchronize_irq(rchan->irq);
1705 struct rcar_dmac_chan *rchan;
1721 rchan = to_rcar_dmac_chan(chan);
1722 rchan->mid_rid = dma_spec->args[0];
1762 struct rcar_dmac_chan *rchan)
1765 struct dma_chan *chan = &rchan->chan;
1770 rchan->mid_rid = -EINVAL;
1772 spin_lock_init(&rchan->lock);
1774 INIT_LIST_HEAD(&rchan->desc.free);
1775 INIT_LIST_HEAD(&rchan->desc.pending);
1776 INIT_LIST_HEAD(&rchan->desc.active);
1777 INIT_LIST_HEAD(&rchan->desc.done);
1778 INIT_LIST_HEAD(&rchan->desc.wait);
1781 sprintf(pdev_irqname, "ch%u", rchan->index);
1782 rchan->irq = platform_get_irq_byname(pdev, pdev_irqname);
1783 if (rchan->irq < 0)
1787 dev_name(dmac->dev), rchan->index);
1800 ret = devm_request_threaded_irq(dmac->dev, rchan->irq,
1803 irqname, rchan);
1806 rchan->irq, ret);