zheng fudi

i.mx28 audio works unexpected. Audio data can not be sent to I2S's FIFOs from DMA module.

Discussion created by zheng fudi on Aug 7, 2012

Hi.I've got a problem with playing audio in i.mx28 EVK.Would anyone help me?Thanks.

Details showed follow:

Issue Details

Reproducibility: Sometimes
Steps to Reproduce:

Loop to playback a small sound file(such as a WAV with 3 seconds).For example,execute shell script bellow:

#!/bin/sh

while :

do

echo "aplay again..."

aplay test.wav  #play a small audio file which hold  3 seconds.

done

Expected Result: The audio should work without trouble forever.
Observed Result: After repeat-playing for some times(maybe several hours or more),the "aplay" would be blocked.Then,neither re-executing "aplay" nor reloading audio-related drivers(alsa driver,sgtl5000,DAI,DMA,and so on.. ) can solve this problem until reboot the system.
Subject: i.mx28 audio works unexpected. Audio data can not be sent to I2S's FIFOs from DMA module.
Description: We have approved that: the problem takes because of data in DMA module can not be sent to I2S's FIFOs(Note that,we wrote audio data directly to HW_SAIF_DATA after problem appeared,the audio data was sent to sgtl5000 immediately ).When problem appeared,we record the registers value as follow:
HW_APBX_CTRL1 = 0x00500000
HW_APBX_CTRL2 = 0x0
HW_APBX_CH4_CURCMDAR = 0x40c0a3c0
HW_APBX_CH4_NXTCMDAR = 0x40c0a360
HW_APBX_CH4_CMD = 0x2000000e
HW_APBX_CH4_BAR = 0x40c20020
HW_APBX_CH4_SEMA = 0x00010000
HW_APBX_CH4_DBG1 = 0x0160000d
HW_APBX_CH4_DBG2 = 0x20001fe0

HW_SAIF_CTRL = 0x08000801
HW_SAIF_STAT = 0x80000050
HW_SAIF_DATA = 0x0
HW_SAIF_VER = 0x01010000

Oh,God. My poor English!!!

Outcomes