Vinod Koul <vinod.koul@xxxxxxxxx> writes: >> > + - Terminating the channel >> Is this last condition mandatory, or can it be transformed into : >> - Clearing DMA_CTRL_REUSE and terminating the channel >> >> The reason I'm asking this is for this kind of scenario : >> - 4 video buffers are prepared and submitted (ie. 4 txs) >> - 1st video buffer completes >> - 2nd video buffer starts, and an error occurs in this 2nd buffer >> => the driver will terminate the DMA channel to stop the transmission >> - the driver will wait for the next "start of frame" of the camera sensor >> - and then it will start 3rd video buffer >> => in this case, the 3rd video will be reused, even if the channel was >> terminated > Nope during terminate flow you are expected to clean up channel. Which mean > cleaning up all pending descriptors and throwing error. You are required to > prepare again Ok. > Here when adding, I though of giving few choice > - allowing folks to say, okay I have last txn, let me remove reuse and > submit. That should be hint to driver to free it up > The expecttaion would be that client supporting reuse check this for every > submit, if the desc is being reused or not That one is great for drivers which know beforehand. > - allowing cleanup anytime when we dont know where last txn is, or when user > cancelled That one is great when it's the userspace which drives the decision to requeue or not. > - Or freeing gracefuly on already submitted desc Ah I don't quite understand this one. I don't see the usecase in this one. 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