Hi Mark,
finally got time to check this. It seems that the DMASREQ is a typo and actually means the DMA_SERQ register with its DMA channel enable bits. Additionally, without the clearing and re-enabling the ENBL bit in DMAMUX0_CHCFGn, the PIT trigger will be simply ignored and the DMA channel will work totally unimpeded.
However, I got a different code for the DREQ bit. I set it BEFORE the very first start/activation of the DMA channel. Also in the DMA DONE interrupt I re-enable the automatically cleared DMA request enable bit ERQn in the DMA_ERQ register. Without re-enabling the ERQn, the DMA channel will simply stop. Asking the Freescale engineers, please, have a look at this!
// enable DREQ and major loop interrupt BEFORE any DMA channel action
DMA_TCDn_CSR = DMA_CSR_DREQ_MASK | DMA_CSR_INTMAJOR_MASK;
// DMAn interrupt handler
void DMAn_ISR (void) {
DMA_CINT = DMA_CINT_CINT(n); // clear DMAn INTn flag
// deassert DMAn request workaround
DMAMUX0_CHCFGn &= ~DMAMUX_CHCFG_ENBL_MASK; // clear ENBL
DMAMUX0_CHCFGn |= DMAMUX_CHCFG_ENBL_MASK; // set ENBL
DMA_SERQ = DMA_SERQ_SERQ(n); // re-enable DMAn request enable bit (set ERQn bit in DMA_ERQ)
}