On 03-05-22, 13:07, Ben Walker wrote: > This series adds support for polling async transactions for completion > even if interrupts are disabled and trasactions can complete out of > order. > > To do this, all DMA client assumptions about the behavior of > dma_cookie_t have to be removed. Prior to this series, dma_cookie_t was > a monotonically increasing integer and cookies could be compared to one > another to determine if earlier operations had completed (up until the > cookie wraps around, then it would break). > > Fortunately, only one out of the many, many DMA clients had any > dependency on dma_cookie_t being anything more than an opaque handle. > This is the pxa_camera driver and it is dealt with in patch 7 of this > series. > > The series also does some API clean up and documents how dma_cookie_t > should behave (i.e. there are no rules, it's just a handle). > > This closes out by adding support for .device_tx_status() to the idxd > driver and then reverting the DMA_OUT_OF_ORDER patch that previously > allowed idxd to opt-out of support for polling, which I think is a nice > overall simplification to the damengine API. > > Herbert, David - Need an ack on patch 4. > > Mauro - Need an ack on patches 5 and 7. > > Matt, Alexandre - Need an ack on patch 6. Can you rebase and resend this, hopefully folks can ack the change... > > Changes since version 1: > - Broke up the change to remove dma_async_is_tx_complete into a single > patch for each driver > - Renamed dma_async_is_tx_complete to dmaengine_async_is_tx_complete. > > Ben Walker (15): > dmaengine: Remove dma_async_is_complete from client API > dmaengine: Move dma_set_tx_state to the provider API header > dmaengine: Add dmaengine_async_is_tx_complete > crypto: stm32/hash: Use dmaengine_async_is_tx_complete > media: omap_vout: Use dmaengine_async_is_tx_complete > rapidio: Use dmaengine_async_is_tx_complete > media: pxa_camera: Use dmaengine_async_is_tx_complete > dmaengine: Remove dma_async_is_tx_complete > dmaengine: Remove last, used from dma_tx_state > dmaengine: Providers should prefer dma_set_residue over > dma_set_tx_state > dmaengine: Remove dma_set_tx_state > dmaengine: Add provider documentation on cookie assignment > dmaengine: idxd: idxd_desc.id is now a u16 > dmaengine: idxd: Support device_tx_status > dmaengine: Revert "cookie bypass for out of order completion" > > Documentation/driver-api/dmaengine/client.rst | 24 ++---- > .../driver-api/dmaengine/provider.rst | 64 ++++++++------ > drivers/crypto/stm32/stm32-hash.c | 3 +- > drivers/dma/amba-pl08x.c | 1 - > drivers/dma/at_hdmac.c | 3 +- > drivers/dma/dmaengine.c | 2 +- > drivers/dma/dmaengine.h | 12 ++- > drivers/dma/dmatest.c | 14 +-- > drivers/dma/idxd/device.c | 1 + > drivers/dma/idxd/dma.c | 86 ++++++++++++++++++- > drivers/dma/idxd/idxd.h | 3 +- > drivers/dma/imx-sdma.c | 3 +- > drivers/dma/mmp_tdma.c | 3 +- > drivers/dma/mxs-dma.c | 3 +- > drivers/media/platform/omap/omap_vout_vrfb.c | 2 +- > drivers/media/platform/pxa_camera.c | 15 +++- > drivers/rapidio/devices/rio_mport_cdev.c | 3 +- > include/linux/dmaengine.h | 58 +------------ > 18 files changed, 164 insertions(+), 136 deletions(-) > > -- > 2.35.1 -- ~Vinod