AnsweredAssumed Answered

Audio recording device is separate hw:0,1 on imx28evk with 3.14 kernel

Question asked by Craig McQueen on Nov 10, 2014
Latest reply on Nov 11, 2014 by Craig McQueen

I'm testing the 3.14.19 kernel on imx28evk, with a Yocto build that uses the linux-fslc kernel provider.


The recording device is hw:0,1 rather than hw:0,0 (the playback device is hw:0,0). This is different to the 2.6.35 kernel case. It means that sound doesn't work "out of the box" (using ALSA lib implicit config, which I assume tries to use hw:0,0). That is, just doing arecord test.wav doesn't work; it is necessary to do something like:


arecord -D hw:0,1 -f s16 -c 2 -r 16000 test.wav


This doesn't use the dsnoop plugin, so there's no automatic sample rate conversion etc (unlike playback with aplay, which automatically uses the dmix plugin for sample rate/channel conversion as needed).


To be able to use arecord without needing the -D hw:0,1 option (and to use dsnoop plugin etc), it would be necessary to define a custom /etc/asound.conf I assume, to direct recording to hw:0,1. But Yocto core-image-minimal build for imx28evk doesn't provide one.


Looking in the driver history, it seems that the two i.MX28 SAIF interfaces are being treated as separate devices. But it wasn't done this way in the 2.6.35 kernel. Is this some new technical constraint of the 3.x kernels? Would it be possible to change the driver so that the recording device also appears as hw:0,0?