[alsa-devel] [PATCH 0/4] ASoC: fix saif record unwork issue

Lauri Hintsala lauri.hintsala at bluegiga.com
Tue Jul 24 08:46:38 EDT 2012


Recording does not work.

On 07/20/2012 12:20 PM, Dong Aisheng wrote:
> This patch series mainly fixes the saif record unwork issue.
> The root cause consists of:
> 1) clk_prepare and clk_enable un-balanced
> 2) missed setting a proper initial clock rate for saif in dt
> 3) sgtl5000 dapm widget kcontrol does not work
>     So can not test record on mx28evk.
> 4) missed setting clkmux mode for saif in dt
>
> With this patch series it can fix sgtl5000 widget kcontrol unwork
> and saif record unwork issue.
>
> BTW, just let people konw, i still met a few overruns during record,
> that's another issue and will be fixed in separte patches later.
>
> Patch based on sound-2.6/for-3.6.

I see two different issues.


1. Recorded audio file is totally silent. Hexdump shows zeros.

2. Recording/playback after first recording gives following error 
"mxs-saif 80042000.saif: error: busy".


Please look at following logs.

Lauri




$ uname -a
Linux mx28evk 3.5.0-00004-g5b5b6fa #9 Tue Jul 24 15:21:25 EEST 2012 
armv5tejl GNU/Linux

$ arecord --version
arecord: version 1.0.25 by Jaroslav Kysela <perex at perex.cz>

$ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: mxssgtl5000 [mxs_sgtl5000], device 0: HiFi Playback sgtl5000-0 []
   Subdevices: 1/1
   Subdevice #0: subdevice #0
card 0: mxssgtl5000 [mxs_sgtl5000], device 1: HiFi Capture sgtl5000-1 []
   Subdevices: 1/1
   Subdevice #0: subdevice #0

$ arecord -f cd test.wav
Recording WAVE 'test.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, 
Stereo
^CAborted by signal Interrupt...

$ hexdump -C test.wav
00000000  52 49 46 46 24 e0 0f 00  57 41 56 45 66 6d 74 20 
|RIFF$...WAVEfmt |
00000010  10 00 00 00 01 00 02 00  44 ac 00 00 10 b1 02 00 
|........D.......|
00000020  04 00 10 00 64 61 74 61  00 e0 0f 00 00 00 00 00 
|....data........|
00000030  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 
|................|
*
00100020

$ arecord -f cd test.wav
Recording WAVE 'test.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, 
Stereo
[   90.610000] mxs-saif 80042000.saif: error: busy
[   90.620000] asoc: machine hw_params failed: -16
arecord: set_params:1145: Unable to install hw params:
ACCESS:  RW_INTERLEAVED
FORMAT:  S16_LE
SUBFORMAT:  STD
SAMPLE_BITS: 16
FRAME_BITS: 32
CHANNELS: 2
RATE: 44100
PERIOD_TIME: (46439 46440)
PERIOD_SIZE: 2048
PERIOD_BYTES: 8192
PERIODS: 8
BUFFER_TIME: (371519 371520)
BUFFER_SIZE: 16384
BUFFER_BYTES: 65536
TICK_TIME: 0

$ aplay test.wav
Playing WAVE 'test.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo
[   98.300000] mxs-saif 80042000.saif: error: busy
[   98.310000] asoc: machine hw_params failed: -16
aplay: set_params:1145: Unable to install hw params:
ACCESS:  RW_INTERLEAVED
FORMAT:  S16_LE
SUBFORMAT:  STD
SAMPLE_BITS: 16
FRAME_BITS: 32
CHANNELS: 2
RATE: 44100
PERIOD_TIME: (46439 46440)
PERIOD_SIZE: 2048
PERIOD_BYTES: 8192
PERIODS: 8
BUFFER_TIME: (371519 371520)
BUFFER_SIZE: 16384
BUFFER_BYTES: 65536
TICK_TIME: 0

$ amixer
Simple mixer control 'Headphone',0
   Capabilities: pvolume penum
   Playback channels: Front Left - Front Right
   Limits: Playback 0 - 127
   Mono:
   Front Left: Playback 122 [96%] [9.50dB]
   Front Right: Playback 122 [96%] [9.50dB]
Simple mixer control 'Headphone Mux',0
   Capabilities: enum
   Items: 'DAC' 'LINE_IN'
   Item0: 'LINE_IN'
Simple mixer control 'Headphone Playback ZC',0
   Capabilities: pswitch pswitch-joined penum
   Playback channels: Mono
   Mono: Playback [on]
Simple mixer control 'PCM',0
   Capabilities: pvolume penum
   Playback channels: Front Left - Front Right
   Limits: Playback 0 - 192
   Mono:
   Front Left: Playback 173 [90%]
   Front Right: Playback 173 [90%]
Simple mixer control 'Mic',0
   Capabilities: volume volume-joined penum
   Playback channels: Mono
   Capture channels: Mono
   Limits: 0 - 4
   Mono: 2 [50%] [30.00dB]
Simple mixer control 'Capture',0
   Capabilities: cvolume penum
   Capture channels: Front Left - Front Right
   Limits: Capture 0 - 15
   Front Left: Capture 14 [93%]
   Front Right: Capture 14 [93%]
Simple mixer control 'Capture Attenuate Switch (-6dB)',0
   Capabilities: volume volume-joined penum
   Playback channels: Mono
   Capture channels: Mono
   Limits: 0 - 2
   Mono: 2 [100%]
Simple mixer control 'Capture Mux',0
   Capabilities: enum
   Items: 'MIC_IN' 'LINE_IN'
   Item0: 'LINE_IN'
Simple mixer control 'Capture ZC',0
   Capabilities: pswitch pswitch-joined penum
   Playback channels: Mono
   Mono: Playback [on]




More information about the linux-arm-kernel mailing list