SSI based ALSA sound card pop/click

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

SSI based ALSA sound card pop/click

779 Views
scrapper
Contributor I

I am using the SSI ports on the imx6 as ALSA sound cards. I have taken the fsl_ssi.c as a reference and created a modified version for the different I2S clocking used on the hardware. The sound card is working fine, except when playback is stopped, there is an audible and disturbing popping noise at the speakers. I have looked at the output of the SSI port when this happens, and I have confirmed that the SSI output goes abruptly to an all 1 state (as if a 0xFFFFFF sample is being output).

For now, as a workaround, I am not turning off SSI transmit when audio playback is stopped. This causes the last audio sample to continue to be transmitted and avoids the pop noise. But while this eliminates the pop noise at the end of audio playback, it cause a slighter, less audible pop at the beginning of audio playback, because the beginning of the audio file is usually silent, so the SSI output goes from the last sample value to almost zero instantly. This pop is much less disturbing, but still, it is there.

So my question is, what do I need to do so that the SSI port's output doesn't go to an all FFFFFF state, but instead goes to a state of all zeros? I am still looking and analyzing the ASoC and the DMA engine source code in the kernel, so any pointers as to where to focus would be appreciated.

Labels (3)
0 Kudos
2 Replies

523 Views
jimmychan
NXP TechSupport
NXP TechSupport

which audio codec are you using? mostly, there is anti-pop feature in the audio codec.

0 Kudos

523 Views
scrapper
Contributor I

Hello Jimmy,

The output of the SSI goes directy into a plain I2S DAC. The DAC doesn't have pop/click prevention. What do I need to change so that the idle output of the SSI port is 0x00 instead of the 0xFF that I am observing?

0 Kudos