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
1736 * Slave transactions callback to the slave device to allow
1737 * synchronization of slave DMA signals with the DMAC enable
1985 "DMA slave configuration botched?\n");
2140 if (!plchan->slave)
2176 * Mark physical channel as free and free any slave
2359 chan->slave = true;
2366 * Initialise the DMAC memcpy/slave channels.
2370 struct dma_device *dmadev, unsigned int channels, bool slave)
2391 if (slave) {
2423 i, slave ? "slave" : "memcpy");
2493 seq_printf(s, "\nPL08x virtual slave channels:\n");
2496 list_for_each_entry(chan, &pl08x->slave.channels,
2527 /* Trying to get a slave channel from something with no slave support */
2531 list_for_each_entry(chan, &pl08x->slave.channels, vc.chan.device_node) {
2558 "DMA slave channel not found\n");
2663 * Allocate channel data for all possible slave channels (one
2681 chanp->bus_id = kasprintf(GFP_KERNEL, "slave%d", i);
2780 * Initialize slave engine, if the block has no signals, that means
2781 * we have no slave support.
2785 dma_cap_set(DMA_SLAVE, pl08x->slave.cap_mask);
2786 dma_cap_set(DMA_CYCLIC, pl08x->slave.cap_mask);
2787 pl08x->slave.dev = &adev->dev;
2788 pl08x->slave.device_free_chan_resources =
2790 pl08x->slave.device_prep_dma_interrupt =
2792 pl08x->slave.device_tx_status = pl08x_dma_tx_status;
2793 pl08x->slave.device_issue_pending = pl08x_issue_pending;
2794 pl08x->slave.device_prep_slave_sg = pl08x_prep_slave_sg;
2795 pl08x->slave.device_prep_dma_cyclic = pl08x_prep_dma_cyclic;
2796 pl08x->slave.device_config = pl08x_config;
2797 pl08x->slave.device_pause = pl08x_pause;
2798 pl08x->slave.device_resume = pl08x_resume;
2799 pl08x->slave.device_terminate_all = pl08x_terminate_all;
2800 pl08x->slave.device_synchronize = pl08x_synchronize;
2801 pl08x->slave.src_addr_widths = PL80X_DMA_BUSWIDTHS;
2802 pl08x->slave.dst_addr_widths = PL80X_DMA_BUSWIDTHS;
2803 pl08x->slave.directions =
2805 pl08x->slave.residue_granularity =
2822 pl08x->slave.filter.map = pl08x->pd->slave_map;
2823 pl08x->slave.filter.mapcnt = pl08x->pd->slave_map_len;
2824 pl08x->slave.filter.fn = pl08x_filter_fn;
2931 /* Register slave channels */
2933 ret = pl08x_dma_init_virtual_channels(pl08x, &pl08x->slave,
2937 "%s failed to enumerate slave channels - %d\n",
2952 ret = dma_async_device_register(&pl08x->slave);
2955 "%s failed to register slave as an async device - %d\n",
2973 pl08x_free_virtual_channels(&pl08x->slave);