The following series implements a way for DMA drivers to report the result of a transaction via callback in order to notify the upper layer. Thanks Lars for providing guidance. I added usage of the new mechanism in the ioatdma driver and also updated the NTB code that uses this mechanism to receive the error. Jon, I assume you'll let Vinod push the two NTB patches since it's part of the series. Changes v3 -> v4: * Addressed comments by Lars - Added more verbose commit messages to all driver commits - Moved cb to inside the function for get_callback_invoke() - Moved change leak from 2/41 to 1/41 * Addressed comment by Sinan Kaya - Changed code to use dmaengine_desc_get_callback_invoke() * Addressed comments by Allen Hubbe - Removed txd in NTB entry entirely Changes v2 -> v3: * Addressed comments by Lars - Moved helper functions to drivers/dma/dmaengine.h - Added helper function that does acquire and invoke callback - Added helper function to detect callback valid - Added comments to clearly define dmaengine_tx_result entries * Fixed additional build errors from build bot Changes v1 -> v2: * Addressed comments by Vinod - Changed dma_desc_callback to dmaengine_desc_callback - Changed dma_trans_result to dmaengine_tx_result * Fixed build issues for several of the drivers * Addressed comments by Laurent - Added documentation update - Made result from dma_async_tx_callback_result a const --- Dave Jiang (41): dmaengine: Add helper function to prep for error reporting dmaengine: at_hdmac: convert callback to helper function dmaengine: at_xdmac: convert callback to helper function dmaengine: coh901318: convert callback to helper function dmaengine: cppi41: convert callback to helper function dmaengine: dw: convert callback to helper function dmaengine: ep93xx_dma: convert callback to helper function dmaengine: fsl_raid: convert callback to helper function dmaengine: fsldma: convert callback to helper function dmaengine: imx-dma: convert callback to helper function dmaengine: imx-sdma: convert callback to helper function dmaengine: ioatdma: convert callback to helper function dmaengine: iop-adma: convert callback to helper function dmaengine: ipu: convert callback to helper function dmaengine: mic_x100_dma: convert callback to helper function dmaengine: mmp_pdma: convert callback to helper function dmaengine: mmp_tdma: convert callback to helper function dmaengine: mpc512x_dma: convert callback to helper function dmaengine: mv_xor: convert callback to helper function dmaengine: mxs-dma: convert callback to helper function dmaengine: nbpfaxi: convert callback to helper function dmaengine: pch_dma: convert callback to helper function dmaengine: pl330: convert callback to helper function dmaengine: ppc4xx_adma: convert callback to helper function dmaengine: qcom_hidma: convert callback to helper function dmaengine: sh_rcar-dmac: convert callback to helper function dmaengine: sh_shdma-base: convert callback to helper function dmaengine: sirf-dma: convert callback to helper function dmaengine: ste_dma40: convert callback to helper function dmaengine: tegra20-apb-dma: convert callback to helper function dmaengine: timb_dma: convert callback to helper function dmaengine: txx9dmac: convert callback to helper function dmaengine: virt-dma: convert callback to helper function dmaengine: xgene-dma: convert callback to helper function dmaengine: xilinx_vdma: convert callback to helper function dmaengine: add support to provide error result from a DMA transation dmaengine: ioatdma: Add error handling to ioat driver dmaengine: ioatdma: add error strings to chanerr output ntb: add DMA error handling for TX DMA ntb: add DMA error handling for RX DMA dmaengine: documentation to the new callback mechanism Documentation/dmaengine/provider.txt | 11 ++ drivers/dma/at_hdmac.c | 11 -- drivers/dma/at_xdmac.c | 8 + drivers/dma/coh901318.c | 9 - drivers/dma/cppi41.c | 2 drivers/dma/dmaengine.h | 84 +++++++++++++ drivers/dma/dw/core.c | 14 +- drivers/dma/ep93xx_dma.c | 10 +- drivers/dma/fsl_raid.c | 10 -- drivers/dma/fsldma.c | 6 - drivers/dma/imx-dma.c | 4 - drivers/dma/imx-sdma.c | 7 - drivers/dma/ioat/dma.c | 213 ++++++++++++++++++++++++++++++---- drivers/dma/ioat/registers.h | 2 drivers/dma/iop-adma.c | 3 drivers/dma/ipu/ipu_idmac.c | 18 +-- drivers/dma/mic_x100_dma.c | 6 - drivers/dma/mmp_pdma.c | 14 +- drivers/dma/mmp_tdma.c | 4 - drivers/dma/mpc512x_dma.c | 3 drivers/dma/mv_xor.c | 5 - drivers/dma/mxs-dma.c | 3 drivers/dma/nbpfaxi.c | 9 - drivers/dma/pch_dma.c | 7 - drivers/dma/pl330.c | 10 +- drivers/dma/ppc4xx/adma.c | 5 - drivers/dma/qcom/hidma.c | 11 -- drivers/dma/sh/rcar-dmac.c | 16 +-- drivers/dma/sh/shdma-base.c | 13 +- drivers/dma/sirf-dma.c | 7 - drivers/dma/ste_dma40.c | 10 +- drivers/dma/tegra20-apb-dma.c | 10 +- drivers/dma/timb_dma.c | 9 - drivers/dma/txx9dmac.c | 9 - drivers/dma/virt-dma.c | 17 +-- drivers/dma/xgene-dma.c | 3 drivers/dma/xilinx/xilinx_vdma.c | 10 +- drivers/ntb/ntb_transport.c | 193 ++++++++++++++++++++++++------- include/linux/dmaengine.h | 16 +++ 39 files changed, 552 insertions(+), 250 deletions(-) -- Signature -- To unsubscribe from this list: send the line "unsubscribe dmaengine" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html