imx6 with AC97 audio codec - wrong sound reproduction

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

imx6 with AC97 audio codec - wrong sound reproduction

Jump to solution
1,139 Views
diegobovi85
Contributor II

Hello,

We have developed a custom board using the imx6q CPU together with the CS4299 AC97 audio codec.

We are facing an issue after a variable time of audio reproduction that is always within 24 hours. 

At the power on, we start a cyclic play of a wav file sampled at 48Khz which contains a 1KHz pure tone. The length of the file is 1 second and we play it every 5 seconds.

The playback is correct the first hours, but if we check the tone later we get a distorted sound. Sometimes the frequency become 2KHz, sometimes 4KHz. The distortion is variable. We also tried to trap the event with an hardware trigger to capture the AC97 communication and we see that when the sound is correct the slots 3 and 4 are valid and the samples compose a 1KHz sine tone, while when the sound is wrong the slots 3, 4, 7 and 8 are valid and the samples compose a different sine tone despite the input file is always the same.

We have experienced this behaviour with both yocto krogoth (kernel linux-fslc-imx-4.1) and yocto sumo (linux-imx-4.9) together with pulseaudio and alsa-lib.

To play the sound we used QSound::play, paplay and aplay with the same result.

What is the cause of this behaviour? How can I debug and fix it?

Kind regards

Diego

Labels (5)
0 Kudos
1 Solution
997 Views
diegobovi85
Contributor II

The issue is fixed in the official linux release 4.16. the involved file is fsl_ssi.c

View solution in original post

0 Kudos
4 Replies
998 Views
diegobovi85
Contributor II

The issue is fixed in the official linux release 4.16. the involved file is fsl_ssi.c

0 Kudos
997 Views
igorpadykov
NXP Employee
NXP Employee

Hi Diego

one can try with nxp linux from source.codeaurora.org/external/imx/linux-imx repository

linux-imx - i.MX Linux kernel 

(nxp does not support linux-fslc-imx-4.1 and yocto sumo linux-imx-4.9)

linux documentation

i.MX Software | NXP 

Best regards
igor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

0 Kudos
997 Views
diegobovi85
Contributor II

Hello Igor,

the linux-imx-4.9 that I used for my tests is the one that you can find in the source.codeaurora.org as you said. 

I tryed both branches imx_4.9.123_imx8mm_ga and imx_4.9.88_2.0.0_ga.

I need to understand if this problem is kernel related or if it is related to something else, for example alsa or pulse.

Kind regards

Diego

0 Kudos
997 Views
igorpadykov
NXP Employee
NXP Employee

Hi Diego

to narrow down issue (if it is caused by linux) one can try with

baremetal i.MX6Q SDK test found on https://community.nxp.com/thread/432859 

Best regards
igor

0 Kudos