I am developing an ALSA audio driver in 3.10.17 which will drive a GS1672 HD-SDI transmitter with audio embedding over i2s. I have written the new codec and machine layers based on the imx-sgtl5000 reference design, but I am running into a dma issue when I use the new sound device with an application such as gstreamer or aplay.
The ALSA driver gets probed and registered successfully:
ALSA device list:
aplay: pcm_write:1262: write error: Input/output error
I have traced the bug to fsl_ssi_trigger(), the error appears to occur right after
playback write error (DMA or IRQ trouble?)
The host (imx6q) has been configured to operate as i2s-master in order to transmit the bit and LR clocks to the GS1672 audio chip. The GS1672 is not able to produce a clock of its own, and must be used as a slave. Therefore the dai_fmt is set to use SND_SOC_DAIFMT_CBS_CFS, and I have flipped the audmux int and ext ports. In the device tree, ssi1 has been changed from i2s-slave to i2s-master. What other changes are necessary to support i2s-master?
Recently I have noticed commits in Linux mainline addressing dma issues and i2s-master support in /sound/soc/fsl_ssi.c. This makes me wonder, is i2s-master actually possible on 3.10.17?