[alsa-devel] Problems with i.MX233 driver in 3.12rc2

Trevor Page trevg60 at gmail.com
Tue Oct 1 08:43:43 CEST 2013


Hello,

First post to this list - I hope this is the appropriate place to ask for
this assistance.

I'm using the Olinuxino Maxi board with the i.MX233 processor. I'm using
the 3.12rc2 kernel at the moment because this has recently introduced the
drivers for this processor's audio. I understand that the drivers for this
chip's audio are:

 sound/soc/codecs/mxs-builtin-codec.c
sound/soc/mxs/mxs-builtin-audio.c
 sound/soc/mxs/mxs-builtin-dai.c
sound/soc/mxs/mxs-builtin-pcm.c

My application for the board is a simple C program that uses the Linphone
library to make VOIP calls. The problem I am having is that audio usually
works (playback and capture) perfectly fine from boot, but at some point it
may suddenly go 'dead'. At this point, there is no longer any audio from
the headphone socket. I have not yet pinpointed exactly what it takes to
trigger the fault, but I have seen it happen once when the call was put on
hold while a Linphone call was in progress.

Once the audio output is dead, these are some further observations:
- When a Linphone call is received, I still hear a click from the headphone
output when the call ends.
- I have confirmed that the DAC / HP channels are turned up and unmuted.
- If I run speaker-test when the audio is working, speaker-test
periodically prints time duration information (presumably on each pass of
its internal loop), like "0 - Front Left", "Time per period ...". When the
audio is dead, speaker-test just freezes on "0 - Front Left" forever, as if
some call is either blocking or returning to say it is busy. This might
hopefully therefore be a useful point to start debugging.
- I have only ever managed to restore audio using a reboot.

I would like to have a go at debugging this. My problem though is that
although I'm experienced with C and microprocessor programming, compiling
and debugging embedded Linux is new ground for me. I'd be grateful for any
pointers on things I could try in order to gain an insight into what's
going wrong, and tips on how I could debug the drivers.

So far my plan for today is to build the kernel again with the i.MX233
audio drivers as external modules so that I can hopefully play with them a
bit and compile them separately. (I assume the development and debug
process for audio drivers like this is to compile them as .ko modules and
modprobe them in). However without having any prior knowledge of Linux
drivers or the ALSA / ASoC framework I'm not sure if I'm going to get very
far.

Regards,

Trevor.


More information about the Alsa-devel mailing list