Message ID | 20220829203537.30676-1-benjamin.walker@intel.com (mailing list archive) |
---|---|
Headers | show |
Series | dmaengine: Support polling for out of order completions | expand |
On 8/29/2022 1:35 PM, Ben Walker wrote: > This series adds support for polling async transactions for completion > even if interrupts are disabled and transactions can complete out of > order. > > 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). Now, cookies > are treated as opaque handles. The series also does some API clean up and > documents how dma_cookie_t should behave. > > 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 dmaengine API. > > Changes since version 4: > - Rebased > - Removed updates to the various drivers that call dma_async_is_tx_complete. > These clean ups will be spun off into a separate patch series since they need > acks from other maintainers. > > Changes since version 3: > - Fixed Message-Id in emails. Sorry they were all stripped! Won't > happen again. > > Changes since version 2: > - None. Rebased as requested without conflict. > > 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 (7): > 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 > 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/dma/dmaengine.c | 2 +- > drivers/dma/dmaengine.h | 21 ++++- > drivers/dma/dmatest.c | 14 +-- > drivers/dma/idxd/device.c | 1 + > drivers/dma/idxd/dma.c | 86 ++++++++++++++++++- > drivers/dma/idxd/idxd.h | 3 +- > include/linux/dmaengine.h | 43 +++------- > 9 files changed, 164 insertions(+), 94 deletions(-) Besides the stray white space, Reviewed-by: Dave Jiang <dave.jiang@gmail.com>