[alsa-devel] Fwd: Fwd: [ASoC] Mic record is not working with wm9713 ASoC driver

Nobin Mathew nobin.mathew at gmail.com
Wed May 9 14:20:39 CEST 2007


Forwarded Conversation
Subject: [ASoC] Mic record is not working with wm9713 ASoC driver
------------------------

 From: Nobin Mathew <nobin.mathew at gmail.com>
To: linux-kernel at vger.kernel.org
Date: Wed, May 9, 2007 at 2:48 PM

I am trying to record mic with AsoC wm9713 driver. My Mic is connected "Mic 1".

My settings

'Mic A Source' -> "Mic 1"
'Mic Boost (+20dB)' [on]
'Capture' [on]
'Left Capture Source' "Mic 1"
'Right Capture Source' "Mic 1"


i am issuing following command to record
"arecord -M -f S16_LE sound.wav"

But what i found is driver is not enabling "Mic bias" and "Mic A PGA"

this dump of /sys/devices/platform/soc-audio/dapm_widget while
"arecord" is running is given below


Mic Bias: Off
Mic B Pre Amp: Off
Mic A Pre Amp: On
Mic B PGA: Off
Mic A PGA: Off
Mono In: Off
Right Line In: Off
Left Line In: Off
Mono Out: Off
Out 4: Off
Out 3: Off
Right Speaker: Off
Left Speaker: Off
Right Headphone: Off
Left Headphone: Off
Right ADC: On
Left ADC: On
Aux DAC: Off
Voice DAC: Off
Capture Mixer: Off
HP Mixer: Off
AC97 Mixer: Off
Right DAC: Off
Left DAC: Off
Speaker Mixer: Off
Mono Mixer: Off
Right HP Mixer: Off
Left HP Mixer: Off
PM State: D0

In idea why this is happening?
what is going wrong with my settings?

Nobin Mathew

--------
 From: Andrew Morton <akpm at linux-foundation.org>
To: Nobin Mathew <nobin.mathew at gmail.com>
Cc: linux-kernel at vger.kernel.org, Jaroslav Kysela <perex at suse.cz>,
Takashi Iwai <tiwai at suse.de>
Date: Wed, May 9, 2007 at 3:51 PM

[Quoted text hidden](maintainers cc'ed)

--------
 From: Liam Girdwood <lg at opensource.wolfsonmicro.com>
To: Nobin Mathew <nobin.mathew at gmail.com>
Cc: linux-kernel at vger.kernel.org
Date: Wed, May 9, 2007 at 3:55 PM

On Wed, 2007-05-09 at 14:48 +0530, Nobin Mathew wrote:
> I am trying to record mic with AsoC wm9713 driver. My Mic is connected "Mic 1".

I've replied to this duplicate post on alsa-dev.

Liam


--------
 From: Nobin Mathew <nobin.mathew at gmail.com>
To: Liam Girdwood <lg at opensource.wolfsonmicro.com>
Cc: linux-kernel at vger.kernel.org
Date: Wed, May 9, 2007 at 4:14 PM

Liam Sorry for disturbing you again,

I could not find that reply on alsa devel mailing list

Can u send that to me

Thanks
[Quoted text hidden]
--------
 From: Liam Girdwood <lg at opensource.wolfsonmicro.com>
To: Nobin Mathew <nobin.mathew at gmail.com>
Date: Wed, May 9, 2007 at 4:22 PM

The mail server is probably a little behind..... give it about 30
mins...

Liam
[Quoted text hidden]> -
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo at vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at  http://www.tux.org/lkml/


--------
 From: Nobin Mathew <nobin.mathew at gmail.com>
To: Liam Girdwood <lg at opensource.wolfsonmicro.com>
Date: Wed, May 9, 2007 at 4:25 PM
Attachments: identity_wm9713.c

Liam i got the mail.
I am not setting any audio paths in my machine driver
[Quoted text hidden]
--------
 From: Nobin Mathew <nobin.mathew at gmail.com>
To: linux-kernel at vger.kernel.org
Date: Wed, May 9, 2007 at 4:28 PM
Attachments: identity_wm9713.c

[Quoted text hidden]
--------
 From: Nobin Mathew <nobin.mathew at gmail.com>
To: Liam Girdwood <lg at opensource.wolfsonmicro.com>
Date: Wed, May 9, 2007 at 5:00 PM

Liam i have few more doubts

i have only Mic1, i am not connecting to Mic2A and Mic 2B
So can i remove audio path to Mic2A and Mic2B
means
my audio path will be like
static const char* audio_map[][3] = {

        /* mic is connected to mic1 - with bias */
        {"MIC1", NULL, "Mic Bias"},
        {"Mic Bias", NULL, "Mic 1"},
#if 0
        /* mic is connected to mic2A - with bias */
        {"MIC2A", NULL, "Mic Bias"},
        {"Mic Bias", NULL, "Mic 2"},
        /* mic is connected to mic2B - with bias */
        {"MIC2B", NULL, "Mic Bias"},
        {"Mic Bias", NULL, "Mic 3"},
#endif

        {NULL, NULL, NULL},
};

instead of

static const char* audio_map[][3] = {

        /* mic is connected to mic1 - with bias */
        {"MIC1", NULL, "Mic Bias"},
        {"Mic Bias", NULL, "Mic 1"},
        /* mic is connected to mic2A - with bias */
        {"MIC2A", NULL, "Mic Bias"},
        {"Mic Bias", NULL, "Mic 2"},
        /* mic is connected to mic2B - with bias */
        {"MIC2B", NULL, "Mic Bias"},
        {"Mic Bias", NULL, "Mic 3"},

        {NULL, NULL, NULL},
};


what is the meaning of these lines, what is RXP and RXN

        /* set up mainstone codec pins */
//      snd_soc_dapm_set_endpoint(codec, "RXP", 0);
//      snd_soc_dapm_set_endpoint(codec, "RXN", 0);
        snd_soc_dapm_set_endpoint(codec, "MIC1", 0);
[Quoted text hidden]
--------
 From: Liam Girdwood <lg at opensource.wolfsonmicro.com>
To: Nobin Mathew <nobin.mathew at gmail.com>
Date: Wed, May 9, 2007 at 5:30 PM

On Wed, 2007-05-09 at 17:00 +0530, Nobin Mathew wrote:
> Liam i have few more doubts
>
> i have only Mic1, i am not connecting to Mic2A and Mic 2B
> So can i remove audio path to Mic2A and Mic2B
> means
> my audio path will be like
> static const char* audio_map[][3] = {
>
>       /* mic is connected to mic1 - with bias */
>       {"MIC1", NULL, "Mic Bias"},
>       {"Mic Bias", NULL, "Mic 1"},
> #if 0
>       /* mic is connected to mic2A - with bias */
>       {"MIC2A", NULL, "Mic Bias"},
>       {"Mic Bias", NULL, "Mic 2"},
>       /* mic is connected to mic2B - with bias */
>       {"MIC2B", NULL, "Mic Bias"},
>       {"Mic Bias", NULL, "Mic 3"},
> #endif
>
>       {NULL, NULL, NULL},
> };
>

This is fine, it's safe to remove unused Mic's.

> instead of
>
> static const char* audio_map[][3] = {
>
>       /* mic is connected to mic1 - with bias */
>       {"MIC1", NULL, "Mic Bias"},
>       {"Mic Bias", NULL, "Mic 1"},
>       /* mic is connected to mic2A - with bias */
>       {"MIC2A", NULL, "Mic Bias"},
>       {"Mic Bias", NULL, "Mic 2"},
>       /* mic is connected to mic2B - with bias */
>       {"MIC2B", NULL, "Mic Bias"},
>       {"Mic Bias", NULL, "Mic 3"},
>
>       {NULL, NULL, NULL},
> };
>
>
> what is the meaning of these lines, what is RXP and RXN
>
>       /* set up mainstone codec pins */
> //    snd_soc_dapm_set_endpoint(codec, "RXP", 0);
> //    snd_soc_dapm_set_endpoint(codec, "RXN", 0);
>       snd_soc_dapm_set_endpoint(codec, "MIC1", 0);

RXP and RXN are from a different codec and should be removed. Also
remove the MIC1 endpoint setting to 0 as this will disconnect it.


Comments from driver :-

static int identity_wm9713_ac97_init(struct snd_soc_codec *codec)
{
        struct platform_controller *controller =
codec->ac97->bus->private_data;
        struct aaci *aaci = (struct aaci *)controller->bus_controller;

        snd_ac97_pcm_assign(codec->ac97->bus, 3, ac97_defs);
        aaci->ac97_bus = codec->ac97->bus;

        /*
         *     * Disable AC97 PC Beep input on audio codecs.
         *          */
        if (ac97_is_audio(codec->ac97))
                snd_ac97_write_cache(codec->ac97, AC97_PC_BEEP,
0x801e);
        return 0;
}


AC97 beep should be disabled in userspace. e.g. alsa configuration file
or by changing mixers settings (alsactl can save and restore settings).

unsigned int identity_wm9713_config_sysclk(struct snd_soc_pcm_runtime
*rtd,
        struct snd_soc_clock_info *info)
{
        return rtd->codec_dai->config_sysclk(rtd->codec_dai, info,
12187500);
}


This function has been removed in current ASoC versions. It's best to
upgrade from kernel.org or from here :-

http://opensource.wolfsonmicro.com/cgi-bin/gitweb/gitweb.cgi?p=linux-2.6-asoc;a=shortlog;h=dev


Liam


--------
 From: Nobin Mathew <nobin.mathew at gmail.com>
To: Liam Girdwood <lg at opensource.wolfsonmicro.com>
Date: Wed, May 9, 2007 at 5:30 PM

Liam
Thanks of lot

i got it working

Cheers
[Quoted text hidden]
--------
 From: Liam Girdwood <lg at opensource.wolfsonmicro.com>
To: Nobin Mathew <nobin.mathew at gmail.com>
Cc: linux-kernel at vger.kernel.org
Date: Wed, May 9, 2007 at 5:38 PM

It's probably best to keep this thread on alsa-dev otherwise things
start to get confusing when cross posting occurs.

Liam





--------
-------------- next part --------------
A non-text attachment was scrubbed...
Name: identity_wm9713.c
Type: text/x-csrc
Size: 5799 bytes
Desc: not available
Url : http://mailman.alsa-project.org/pipermail/alsa-devel/attachments/20070509/5dbdc0ea/attachment.c 


More information about the Alsa-devel mailing list