alistair23-linux/Documentation/driver-api
Laurent Pinchart 9c8ebd8b82 dmaengine: Add support for repeating transactions
DMA engines used with displays perform 2D interleaved transfers to read
framebuffers from memory and feed the data to the display engine. As the
same framebuffer can be displayed for multiple frames, the DMA
transactions need to be repeated until a new framebuffer replaces the
current one. This feature is implemented natively by some DMA engines
that have the ability to repeat transactions and switch to a new
transaction at the end of a transfer without any race condition or frame
loss.

This patch implements support for this feature in the DMA engine API. A
new DMA_PREP_REPEAT transaction flag allows DMA clients to instruct the
DMA channel to repeat the transaction automatically until one or more
new transactions are issued on the channel (or until all active DMA
transfers are explicitly terminated with the dmaengine_terminate_*()
functions). A new DMA_REPEAT transaction type is also added for DMA
engine drivers to report their support of the DMA_PREP_REPEAT flag.

A new DMA_PREP_LOAD_EOT transaction flag is also introduced (with a
corresponding DMA_LOAD_EOT capability bit), as requested during the
review of v4. The flag instructs the DMA channel that the transaction
being queued should replace the active repeated transaction when the
latter terminates (at End Of Transaction). Not setting the flag will
result in the active repeated transaction to continue being repeated,
and the new transaction being silently ignored.

The DMA_PREP_REPEAT flag is currently supported for interleaved
transactions only. Its usage can easily be extended to cover more
transaction types simply by adding an appropriate check in the
corresponding dmaengine_prep_*() function.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Link: https://lore.kernel.org/r/20200717013337.24122-3-laurent.pinchart@ideasonboard.com
Signed-off-by: Vinod Koul <vkoul@kernel.org>
2020-07-17 11:37:59 +05:30
..
80211 docs: prevent warnings due to autosectionlabel 2020-03-20 17:01:29 -06:00
acpi Replace HTTP links with HTTPS ones: documentation 2020-06-08 09:30:19 -06:00
backlight
dmaengine dmaengine: Add support for repeating transactions 2020-07-17 11:37:59 +05:30
driver-model A handful of late-arriving docs fixes, along with a patch changing a lot of 2020-06-10 14:12:15 -07:00
early-userspace
firmware Merge branch 'efi-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2020-03-30 16:13:08 -07:00
fpga
gpio gpiolib: Add support for GPIO lookup by line name 2020-05-18 10:12:42 +02:00
i3c
iio iio: core: drop devm_iio_trigger_free() API call 2020-04-19 16:56:37 +01:00
md
media media: v4l2-subdev.rst: correct information about v4l2 events 2020-06-11 19:20:26 +02:00
mei
memory-devices
mmc
mtd
nfc
nvdimm doc: nvdimm: remove reference to non-existent CONFIG_NFIT_TEST 2020-04-28 12:46:07 -06:00
pci
phy
pm Merge branch 'pm-cpuidle' 2020-06-01 15:19:30 +02:00
rapidio
serial
soundwire soundwire: bus: rename sdw_bus_master_add/delete, add arguments 2020-05-19 12:44:34 +05:30
thermal doc: thermal: add cpu-idle-cooling to index tree 2020-05-05 09:57:14 -06:00
usb Replace HTTP links with HTTPS ones: documentation 2020-06-08 09:30:19 -06:00
xilinx
basics.rst
clk.rst
component.rst
connector.rst
console.rst
dcdbas.rst
devfreq.rst docs: Add initial documentation for devfreq 2019-11-19 13:16:53 -07:00
device-io.rst
device_connection.rst
device_link.rst driver core: Add support for linking devices during device addition 2019-10-04 17:29:50 +02:00
dma-buf.rst dma-buf: Couple of documentation typo fixes 2020-04-20 17:00:34 -06:00
edac.rst
eisa.rst
firewire.rst
frame-buffer.rst
generic-counter.rst docs: driver-api: generic-counter: Update Count and Signal data types 2019-10-18 19:47:38 +01:00
hsi.rst
i2c.rst
index.rst media updates for v5.8-rc1 2020-06-03 20:59:38 -07:00
infiniband.rst RDMA/core: Remove FMR pool API 2020-06-02 20:32:53 -03:00
infrastructure.rst docs: No structured comments in kernel/dma/coherent.c 2019-10-01 08:43:21 -06:00
input.rst
interconnect.rst interconnect: Add interconnect_graph file to debugfs 2019-12-16 09:49:54 +02:00
io-mapping.rst Documentation: Add io-mapping.rst to driver-api manual 2020-03-10 11:33:15 -06:00
io_ordering.rst Documentation: Add io_ordering.rst to driver-api manual 2020-03-10 11:33:19 -06:00
ioctl.rst docs: move core-api/ioctl.rst to driver-api/ 2020-03-10 11:21:08 -06:00
ipmb.rst drivers: ipmi: Support raw i2c packet in IPMB 2019-12-11 13:21:36 -06:00
ipmi.rst docs: move IPMI.txt to the driver API book 2020-05-15 11:55:04 -06:00
isa.rst
isapnp.rst
libata.rst scsi: docs: convert scsi_eh.txt to ReST 2020-03-11 23:08:01 -04:00
lightnvm-pblk.rst
men-chameleon-bus.rst
message-based.rst
misc_devices.rst
miscellaneous.rst
mtdnand.rst mtd: rawnand: Stop using nand_release() 2020-05-31 10:53:40 +02:00
ntb.rst
nvmem.rst nvmem: core: add nvmem_device_find 2019-10-07 09:47:37 -07:00
parport-lowlevel.rst
pinctl.rst
pps.rst
pti_intel_mid.rst docs: driver-api: pti_intel_mid: Enable syntax highlighting for C code block 2019-10-18 09:40:13 -06:00
ptp.rst
pwm.rst
regulator.rst
rfkill.rst
s390-drivers.rst
scsi.rst
slimbus.rst
sm501.rst
smsc_ece1099.rst
sound.rst
spi.rst
switchtec.rst
sync_file.rst
target.rst
uio-howto.rst
vfio-mediated-device.rst
vfio.rst
vme.rst
w1.rst docs: driver-api: address duplicate label warning 2020-04-07 13:41:34 -06:00
xillybus.rst
zorro.rst