Lars-Peter Clausen <lars@xxxxxxxxxx> 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 -- 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