Lines Matching refs:slave
238 * @cfg: slave configuration
242 * @slave: whether this channel is a device (slave) or for memcpy
256 bool slave;
264 * @slave: optional slave engine for this instance
266 * @has_slave: the PL08x has a slave engine (routed signals)
279 struct dma_device slave;
461 * FIXME: do not just handle memcpy, also handle slave DMA.
925 list_for_each_entry(p, &pl08x->slave.channels, vc.chan.device_node)
1118 * byte data), slave is still not aligned, then its width will be reduced to
1388 * - if slave is not then we must set its width down
1728 * Slave transactions callback to the slave device to allow
1729 * synchronization of slave DMA signals with the DMAC enable
1977 "DMA slave configuration botched?\n");
2132 if (!plchan->slave)
2168 * Mark physical channel as free and free any slave
2351 chan->slave = true;
2358 * Initialise the DMAC memcpy/slave channels.
2362 struct dma_device *dmadev, unsigned int channels, bool slave)
2383 if (slave) {
2415 i, slave ? "slave" : "memcpy");
2485 seq_printf(s, "\nPL08x virtual slave channels:\n");
2488 list_for_each_entry(chan, &pl08x->slave.channels,
2519 /* Trying to get a slave channel from something with no slave support */
2523 list_for_each_entry(chan, &pl08x->slave.channels, vc.chan.device_node) {
2550 "DMA slave channel not found\n");
2655 * Allocate channel data for all possible slave channels (one
2673 chanp->bus_id = kasprintf(GFP_KERNEL, "slave%d", i);
2771 * Initialize slave engine, if the block has no signals, that means
2772 * we have no slave support.
2776 dma_cap_set(DMA_SLAVE, pl08x->slave.cap_mask);
2777 dma_cap_set(DMA_CYCLIC, pl08x->slave.cap_mask);
2778 pl08x->slave.dev = &adev->dev;
2779 pl08x->slave.device_free_chan_resources =
2781 pl08x->slave.device_tx_status = pl08x_dma_tx_status;
2782 pl08x->slave.device_issue_pending = pl08x_issue_pending;
2783 pl08x->slave.device_prep_slave_sg = pl08x_prep_slave_sg;
2784 pl08x->slave.device_prep_dma_cyclic = pl08x_prep_dma_cyclic;
2785 pl08x->slave.device_config = pl08x_config;
2786 pl08x->slave.device_pause = pl08x_pause;
2787 pl08x->slave.device_resume = pl08x_resume;
2788 pl08x->slave.device_terminate_all = pl08x_terminate_all;
2789 pl08x->slave.device_synchronize = pl08x_synchronize;
2790 pl08x->slave.src_addr_widths = PL80X_DMA_BUSWIDTHS;
2791 pl08x->slave.dst_addr_widths = PL80X_DMA_BUSWIDTHS;
2792 pl08x->slave.directions =
2794 pl08x->slave.residue_granularity =
2811 pl08x->slave.filter.map = pl08x->pd->slave_map;
2812 pl08x->slave.filter.mapcnt = pl08x->pd->slave_map_len;
2813 pl08x->slave.filter.fn = pl08x_filter_fn;
2920 /* Register slave channels */
2922 ret = pl08x_dma_init_virtual_channels(pl08x, &pl08x->slave,
2926 "%s failed to enumerate slave channels - %d\n",
2941 ret = dma_async_device_register(&pl08x->slave);
2944 "%s failed to register slave as an async device - %d\n",
2962 pl08x_free_virtual_channels(&pl08x->slave);