[PATCH v4 1/4] dma: mmp_pdma: only complete one transaction from dma_do_tasklet()
zonque at gmail.com
Tue Aug 20 03:44:00 EDT 2013
On 20.08.2013 04:27, Xiang Wang wrote:
> I think we would not run into the situation that there is a descriptor
> with ENDIRQEN set in the middle of the running chain.
> in mmp_pdma.c:
> mmp_pdma_tx_submit() -> append_pending_queue() ->
> tail->desc.dcmd &= ~DCMD_ENDIRQEN;
> So in the pending list (same for running list), only the last descriptor
> will have ENDIRQEN set.
Right, thanks for noting that.
But is that what we want? I think that clearing of the ENDIRQEN bit
needs to be removed then, because if we really have multiple
transactions running, then we want to get an interrupt whenever _any_ of
it is completed. Also, the way I solved it now, the ENDIRQEN bit is also
looked at when the residue code tries to distinguish the transactions in
Hence, would you agree that we should remove that "tail->desc.dcmd &=
~DCMD_ENDIRQEN;" modification in order to make the above logic work?
More information about the linux-arm-kernel