Re: [PATCH v2 00/15] dmaengine: Support polling for out of order completions

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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



[Index of Archives]     [Linux Kernel]     [Linux ARM (vger)]     [Linux ARM MSM]     [Linux Omap]     [Linux Arm]     [Linux Tegra]     [Fedora ARM]     [Linux for Samsung SOC]     [eCos]     [Linux PCI]     [Linux Fastboot]     [Gcc Help]     [Git]     [DCCP]     [IETF Announce]     [Security]     [Linux MIPS]     [Yosemite Campsites]

  Powered by Linux