[alsa-devel] OMAP4 DMIC only works on 2 channels but 4 or 6 channels

hong zhang henryzhang62 at yahoo.com
Sat Jun 11 00:16:56 CEST 2011


Liam,

OMAP4 DMIC only works on 2 channels but 4 or 6 channels by means of arecord and ABE diagram.

1. "arecord -f dat -c 4 plughw:0,0 dmic-4.wav" returns

   Recording WAVE 'dmic-4.wav' : Signed 16 bit Little Endian, Rate 48000 Hz, Channe[  929.988220] omap-dmic-dai omap-dmic-dai: is
ls 4
[  929.996002] asoc: interface omap-dmic-abe-dai-0 hw params failed
[  930.002563]  SDP4430 Media: omap_abe_dai_hw_params: backend hw_params failed -22
[  930.011016] asoc: interface MultiMedia1 hw params failed
arecord: set_params:1116: Unable to install hw params:
ACCESS:  RW_INTERLEAVED
FORMAT:  S16_LE
SUBFORMAT:  STD
SAMPLE_BITS: 16
FRAME_BITS: 64
CHANNELS: 4
RATE: 48000
PERIOD_TIME: 42625
PERIOD_SIZE: 2046
PERIOD_BYTES: 16368
PERIODS: 4
BUFFER_TIME: 170500
BUFFER_SIZE: 8184
BUFFER_BYTES: 65472
TICK_TIME: 0

2. "arecord -f dat -c 2 plughw:0,0 dmic-4.wav" 
   collects wrong data, no voice is capture in dmic-4.wav. 
   if following is set.
   amixer cset numid=58 4
   amixer cset numid=59 3
   amixer cset numid=60 2
   amixer cset numid=61 1

item 1 indicates DMIC refuses to take more than 2 channels using arecord.
item 2 indicates DMIC capture no voice data if 2 DMIC pins (4 channels)
       are enabled and arecord using 2 channels. 

amixer does not handle any channel number. And ABE does not overwrite number of channels set by arecord.

Do you think it is bug?

Thanks.

---henry


More information about the Alsa-devel mailing list