[PATCH V3 0/3] dmaengine: qcom_hidma: add error reporting
Sinan Kaya
okaya at codeaurora.org
Mon Aug 29 08:30:31 PDT 2016
Hi Vinod,
On 8/23/2016 12:48 AM, Sinan Kaya wrote:
> Three changes:
> 1. There is a race condition between data transfer callback and descriptor
> free code. The callback routine may decide to clear the resources even
> though the descriptor has not yet been freed.
>
> 2. DMA Engine framework now supports direct error reporting to the client
> via the callback.
>
> Pass the DMA errors to the client by passing a result argument. The HW only
> supports a generic error when something goes wrong. That's why, using
> DMA_TRANS_ABORTED all the time.
>
> 3. The HIDMA driver is capable of error detection. However, the error was
> not being passed back to the client when tx_status API is called.
>
> ------------------------
> Changes from v2 (https://patchwork.kernel.org/patch/9253379/)
> ------------------------
> - Implement the error passing to the client.
> - Get rid of the reset in the interrupt handler when an error happens and
> put the HW into disabled state. The only way to recover is for the client to
> terminate the channel.
>
> Sinan Kaya (3):
> dmaengine: qcom_hidma: release the descriptor before the callback
> dmaengine: qcom_hidma: report transfer errors with new interface
> dmaengine: qcom_hidma: add error reporting for tx_status
>
> drivers/dma/qcom/hidma.c | 50 +++++++++++++++++++++++++++++++++++----------
> drivers/dma/qcom/hidma.h | 1 +
> drivers/dma/qcom/hidma_ll.c | 32 +++++++----------------------
> 3 files changed, 47 insertions(+), 36 deletions(-)
>
Any feedback here?
Does this implementation look like what you were expecting?
--
Sinan Kaya
Qualcomm Datacenter Technologies, Inc. as an affiliate of Qualcomm Technologies, Inc.
Qualcomm Technologies, Inc. is a member of the Code Aurora Forum, a Linux Foundation Collaborative Project.
More information about the linux-arm-kernel
mailing list