I have almost the same case. I use AdeneoEmbedded kernel (Release 4.2). There is a SGTL5000 codec connected to SSI2 via AUDMUX5 and a GSM modem (DVI port) connected to SSI1 via AUDMUX3. Sample rate is 8kHz, 16-bit, I2S. Modem is master. Play buffer of SSI is located in IRAM. So when I start sending data and the DMA controller starts transfers, SSI reports multiple TX underruns. About 110 per 100 ms or 1600 slots
imx_ssi_irq mxc_ssi SISR 1a0 SIER 180100 fifo_errs=1
It seems that DMA controller fails to fetch data in time... What could it be??