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

Dong Aisheng b29396 at freescale.com
Wed Jul 25 02:44:41 EDT 2012


On Wed, Jul 25, 2012 at 01:26:38PM +0800, Lauri Hintsala wrote:
> On 07/24/2012 10:21 PM, Mark Brown wrote:
> > On Tue, Jul 24, 2012 at 03:46:38PM +0300, Lauri Hintsala wrote:
> >
> >> 1. Recorded audio file is totally silent. Hexdump shows zeros.
> >
> > This one is commonly due to devices powering up muted by default and
> > requiring that you set some controls to route the audio through - are
> > you sure you've not missed anything there?
> 
> I tried to set gains and other settings with alsamixer. I didn't see any 
> options for muting. Here is the output of amixer.
> 
> $ 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]
> 
> The testing is not currently very reasonable. I have to reboot my 
> machine after every single recording because of "busy" bug.
> 
I reproduced your issue.
It seems the root cause is that you used the wrong device to record.
The record device is 1.
root at freescale ~$ 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

Can you try again with below command?
arecord -D hw:0,1 -d 5 -f S16_LE -r 44100 -c 2 1.wav

However, i think it is an issue of the driver that it should report an error
if find user are using a device to do playback or capture without that capability.

I'm wondering soc-core may need provide an interface for user to change the DAI capability
according to the real using, e.g: only playback are used.
I'm not sure if we already have one.
Will do some research on it.

Regards
Dong Aisheng




More information about the linux-arm-kernel mailing list