--- Quote Start ---
The Run BIT is still set -we still read a value of 0x85 from the Control Field inside the Descriptor.
--- Quote End ---
This means the descriptor has the OWNED_BY_HW bit set (0x80).
I think the last descriptor in your chain must have its OWNED_BY_HW bit cleared.
Otherwise the dma core is supposed to continue processing and would not release the busy flag.
Are you using a true descriptor chain or are you testing with a single one? If the latter, then the error is indeed on sw side (LOL :cool:) because OWNED_BY_HW should have been programmed to zero. If instead the transfer stops on the very first descriptor of the chain, then it's likely 'you' have a problem :oops: