Lines Matching defs:memcpy
223 * channel to become available (only pertains to memcpy channels)
242 * @slave: whether this channel is a device (slave) or for memcpy
265 * @memcpy: memcpy engine for this instance
280 struct dma_device memcpy;
461 * FIXME: do not just handle memcpy, also handle slave DMA.
917 list_for_each_entry(p, &pl08x->memcpy.channels, vc.chan.device_node)
1190 /* FIXME: only memcpy so far so both increase */
1769 "illegal burst size for memcpy, set to 1\n");
1808 "illegal bus width for memcpy, set to 8 bits\n");
1852 "illegal bus width for memcpy, set to 8 bits\n");
1887 * Initialize a descriptor to be used by memcpy submit
2366 * Initialise the DMAC memcpy/slave channels.
2378 * Register as many many memcpy as we have physical channels,
2406 chan->cd->bus_id = "memcpy";
2408 chan->name = kasprintf(GFP_KERNEL, "memcpy%d", i);
2423 i, slave ? "slave" : "memcpy");
2484 seq_printf(s, "\nPL08x virtual memcpy channels:\n");
2487 list_for_each_entry(chan, &pl08x->memcpy.channels, vc.chan.device_node) {
2606 /* Parse the memcpy channel properties */
2607 ret = of_property_read_u32(np, "memcpy-burst-size", &val);
2609 dev_info(&adev->dev, "no memcpy burst size specified, using 1 byte\n");
2614 dev_err(&adev->dev, "illegal burst size for memcpy, set to 1\n");
2642 ret = of_property_read_u32(np, "memcpy-bus-width", &val);
2644 dev_info(&adev->dev, "no memcpy bus width specified, using 8 bits\n");
2649 dev_err(&adev->dev, "illegal bus width for memcpy, set to 8 bits\n");
2758 /* Initialize memcpy engine */
2759 dma_cap_set(DMA_MEMCPY, pl08x->memcpy.cap_mask);
2760 pl08x->memcpy.dev = &adev->dev;
2761 pl08x->memcpy.device_free_chan_resources = pl08x_free_chan_resources;
2762 pl08x->memcpy.device_prep_dma_memcpy = pl08x_prep_dma_memcpy;
2763 pl08x->memcpy.device_prep_dma_interrupt = pl08x_prep_dma_interrupt;
2764 pl08x->memcpy.device_tx_status = pl08x_dma_tx_status;
2765 pl08x->memcpy.device_issue_pending = pl08x_issue_pending;
2766 pl08x->memcpy.device_config = pl08x_config;
2767 pl08x->memcpy.device_pause = pl08x_pause;
2768 pl08x->memcpy.device_resume = pl08x_resume;
2769 pl08x->memcpy.device_terminate_all = pl08x_terminate_all;
2770 pl08x->memcpy.device_synchronize = pl08x_synchronize;
2771 pl08x->memcpy.src_addr_widths = PL80X_DMA_BUSWIDTHS;
2772 pl08x->memcpy.dst_addr_widths = PL80X_DMA_BUSWIDTHS;
2773 pl08x->memcpy.directions = BIT(DMA_MEM_TO_MEM);
2774 pl08x->memcpy.residue_granularity = DMA_RESIDUE_GRANULARITY_SEGMENT;
2776 pl08x->memcpy.copy_align = DMAENGINE_ALIGN_4_BYTES;
2921 /* Register as many memcpy channels as there are physical channels */
2922 ret = pl08x_dma_init_virtual_channels(pl08x, &pl08x->memcpy,
2926 "%s failed to enumerate memcpy channels - %d\n",
2943 ret = dma_async_device_register(&pl08x->memcpy);
2946 "%s failed to register memcpy as an async device - %d\n",
2970 dma_async_device_unregister(&pl08x->memcpy);
2975 pl08x_free_virtual_channels(&pl08x->memcpy);