AXIDMA: Don't return from dma_halt until the channel's tasklet has terminated

This means that once that function has returned, there are no remaining
references to that channel's data structures and it can safely be destroyed.
Without this, there is a race between the tasklet cleaning up descriptors and
anythng trying to destroy the channel
Merge branch 'mercury' into mercury-microzed

This pulls in the axidma tasklet fix