Lines Matching refs:chan
299 static inline struct pl08x_dma_chan *to_pl08x_chan(struct dma_chan *chan) in to_pl08x_chan() argument
301 return container_of(chan, struct pl08x_dma_chan, vc.chan); in to_pl08x_chan()
696 list_for_each_entry(p, &pl08x->memcpy.channels, vc.chan.device_node) in pl08x_phy_free()
703 list_for_each_entry(p, &pl08x->slave.channels, vc.chan.device_node) in pl08x_phy_free()
1175 struct pl08x_dma_chan *plchan = to_pl08x_chan(vd->tx.chan); in pl08x_desc_free()
1196 static void pl08x_free_chan_resources(struct dma_chan *chan) in pl08x_free_chan_resources() argument
1199 vchan_free_chan_resources(to_virt_chan(chan)); in pl08x_free_chan_resources()
1203 struct dma_chan *chan, unsigned long flags) in pl08x_prep_dma_interrupt() argument
1215 static enum dma_status pl08x_dma_tx_status(struct dma_chan *chan, in pl08x_dma_tx_status() argument
1218 struct pl08x_dma_chan *plchan = to_pl08x_chan(chan); in pl08x_dma_tx_status()
1224 ret = dma_cookie_status(chan, cookie, txstate); in pl08x_dma_tx_status()
1239 ret = dma_cookie_status(chan, cookie, txstate); in pl08x_dma_tx_status()
1392 static void pl08x_issue_pending(struct dma_chan *chan) in pl08x_issue_pending() argument
1394 struct pl08x_dma_chan *plchan = to_pl08x_chan(chan); in pl08x_issue_pending()
1423 struct dma_chan *chan, dma_addr_t dest, dma_addr_t src, in pl08x_prep_dma_memcpy() argument
1426 struct pl08x_dma_chan *plchan = to_pl08x_chan(chan); in pl08x_prep_dma_memcpy()
1474 struct dma_chan *chan, in pl08x_init_txd() argument
1478 struct pl08x_dma_chan *plchan = to_pl08x_chan(chan); in pl08x_init_txd()
1585 struct dma_chan *chan, struct scatterlist *sgl, in pl08x_prep_slave_sg() argument
1589 struct pl08x_dma_chan *plchan = to_pl08x_chan(chan); in pl08x_prep_slave_sg()
1599 txd = pl08x_init_txd(chan, direction, &slave_addr); in pl08x_prep_slave_sg()
1627 struct dma_chan *chan, dma_addr_t buf_addr, size_t buf_len, in pl08x_prep_dma_cyclic() argument
1631 struct pl08x_dma_chan *plchan = to_pl08x_chan(chan); in pl08x_prep_dma_cyclic()
1643 txd = pl08x_init_txd(chan, direction, &slave_addr); in pl08x_prep_dma_cyclic()
1669 static int pl08x_config(struct dma_chan *chan, in pl08x_config() argument
1672 struct pl08x_dma_chan *plchan = to_pl08x_chan(chan); in pl08x_config()
1695 static int pl08x_terminate_all(struct dma_chan *chan) in pl08x_terminate_all() argument
1697 struct pl08x_dma_chan *plchan = to_pl08x_chan(chan); in pl08x_terminate_all()
1729 static int pl08x_pause(struct dma_chan *chan) in pl08x_pause() argument
1731 struct pl08x_dma_chan *plchan = to_pl08x_chan(chan); in pl08x_pause()
1752 static int pl08x_resume(struct dma_chan *chan) in pl08x_resume() argument
1754 struct pl08x_dma_chan *plchan = to_pl08x_chan(chan); in pl08x_resume()
1775 bool pl08x_filter_id(struct dma_chan *chan, void *chan_id) in pl08x_filter_id() argument
1781 if (chan->device->dev->driver != &pl08x_amba_driver.drv) in pl08x_filter_id()
1784 plchan = to_pl08x_chan(chan); in pl08x_filter_id()
1873 static void pl08x_dma_slave_init(struct pl08x_dma_chan *chan) in pl08x_dma_slave_init() argument
1875 chan->slave = true; in pl08x_dma_slave_init()
1876 chan->name = chan->cd->bus_id; in pl08x_dma_slave_init()
1877 chan->cfg.src_addr = chan->cd->addr; in pl08x_dma_slave_init()
1878 chan->cfg.dst_addr = chan->cd->addr; in pl08x_dma_slave_init()
1888 struct pl08x_dma_chan *chan; in pl08x_dma_init_virtual_channels() local
1899 chan = kzalloc(sizeof(*chan), GFP_KERNEL); in pl08x_dma_init_virtual_channels()
1900 if (!chan) { in pl08x_dma_init_virtual_channels()
1906 chan->host = pl08x; in pl08x_dma_init_virtual_channels()
1907 chan->state = PL08X_CHAN_IDLE; in pl08x_dma_init_virtual_channels()
1908 chan->signal = -1; in pl08x_dma_init_virtual_channels()
1911 chan->cd = &pl08x->pd->slave_channels[i]; in pl08x_dma_init_virtual_channels()
1912 pl08x_dma_slave_init(chan); in pl08x_dma_init_virtual_channels()
1914 chan->cd = &pl08x->pd->memcpy_channel; in pl08x_dma_init_virtual_channels()
1915 chan->name = kasprintf(GFP_KERNEL, "memcpy%d", i); in pl08x_dma_init_virtual_channels()
1916 if (!chan->name) { in pl08x_dma_init_virtual_channels()
1917 kfree(chan); in pl08x_dma_init_virtual_channels()
1923 chan->name); in pl08x_dma_init_virtual_channels()
1925 chan->vc.desc_free = pl08x_desc_free; in pl08x_dma_init_virtual_channels()
1926 vchan_init(&chan->vc, dmadev); in pl08x_dma_init_virtual_channels()
1935 struct pl08x_dma_chan *chan = NULL; in pl08x_free_virtual_channels() local
1938 list_for_each_entry_safe(chan, in pl08x_free_virtual_channels()
1939 next, &dmadev->channels, vc.chan.device_node) { in pl08x_free_virtual_channels()
1940 list_del(&chan->vc.chan.device_node); in pl08x_free_virtual_channels()
1941 kfree(chan); in pl08x_free_virtual_channels()
1966 struct pl08x_dma_chan *chan; in pl08x_debugfs_show() local
1993 list_for_each_entry(chan, &pl08x->memcpy.channels, vc.chan.device_node) { in pl08x_debugfs_show()
1994 seq_printf(s, "%s\t\t%s\n", chan->name, in pl08x_debugfs_show()
1995 pl08x_state_str(chan->state)); in pl08x_debugfs_show()
2001 list_for_each_entry(chan, &pl08x->slave.channels, vc.chan.device_node) { in pl08x_debugfs_show()
2002 seq_printf(s, "%s\t\t%s\n", chan->name, in pl08x_debugfs_show()
2003 pl08x_state_str(chan->state)); in pl08x_debugfs_show()
2039 struct pl08x_dma_chan *chan; in pl08x_find_chan_id() local
2041 list_for_each_entry(chan, &pl08x->slave.channels, vc.chan.device_node) { in pl08x_find_chan_id()
2042 if (chan->signal == id) in pl08x_find_chan_id()
2043 return &chan->vc.chan; in pl08x_find_chan_id()
2054 struct pl08x_dma_chan *chan; in pl08x_of_xlate() local
2067 chan = devm_kzalloc(pl08x->slave.dev, sizeof(*chan) + sizeof(*data), in pl08x_of_xlate()
2069 if (!chan) in pl08x_of_xlate()
2072 data = (void *)&chan[1]; in pl08x_of_xlate()
2076 chan->cd = data; in pl08x_of_xlate()
2077 chan->host = pl08x; in pl08x_of_xlate()
2078 chan->slave = true; in pl08x_of_xlate()
2079 chan->name = data->bus_id; in pl08x_of_xlate()
2080 chan->state = PL08X_CHAN_IDLE; in pl08x_of_xlate()
2081 chan->signal = dma_spec->args[0]; in pl08x_of_xlate()
2082 chan->vc.desc_free = pl08x_desc_free; in pl08x_of_xlate()
2084 vchan_init(&chan->vc, &pl08x->slave); in pl08x_of_xlate()
2086 return dma_get_slave_channel(&chan->vc.chan); in pl08x_of_xlate()