[PATCH] dmaengine: qcom_hidma: release the descriptor before the callback
Robert Jarzmik
robert.jarzmik at free.fr
Thu Aug 4 23:32:56 PDT 2016
Lars-Peter Clausen <lars at metafoo.de> writes:
> On 08/04/2016 06:08 PM, Sinan Kaya wrote:
> [...]
>> The other way is I can feed this information to what Dave just introduced
>> as part of the callback mechanism and not touch this.
>
> Use the callback mechanism. It is a lot easier to implement correctly than
> the tx_status() mechanism.
>
>> The main discussion here is that
>>
>> "tx_status does not indicate whether the final transaction is successful or
>> not" whether the driver has the capability to determine error or not.
>
> tx_status() is supposed to be able to indicate whether a transfer failed or
> not. But in my opinion this feature is broken by design and implementing it
> correctly is very difficult without creating memory leaks. Which is probably
> why so few drivers actually implement it.
I think you can implement the error reporting by remembering the "last" cookie
where an error occurred such as in :
- e093bf60ca49 ("dmaengine: pxa: handle bus errors")
=> see the part of the commit beginning with "As dma_cookie_status() ..."
The point about error reporting was already discussed with Vinod in here:
https://lkml.org/lkml/2016/4/13/471
=> Vinod and I were seeing the reporting can be improved
Yet the description made by Russell of the DMA API semantics can be implemented
and used to find whether a specific tx failed or not, it's rather the "in
progress" part I find misleading.
Cheers.
--
Robert
More information about the linux-arm-kernel
mailing list