Thread (20 messages) flat view 20 messages, 4 authors, 2012-08-01

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

From: Lauri Hintsala <hidden>
Date: 2012-07-24 12:46:38
Also in: alsa-devel

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 [off-list ref]

$ 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]
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help