List Info

Thread: Re: nForce 430 / ASUS M2NPV-VM snd_hda_intel (surround) sound problems




Re: nForce 430 / ASUS M2NPV-VM snd_hda_intel (surround) sound problems
country flaguser name
Germany
2007-04-16 14:13:02
At Mon, 16 Apr 2007 20:42:10 +0200,
Prakash Punnoor wrote:
> 
> Am Montag 16 April 2007 schrieb Takashi Iwai:
> > At Mon, 16 Apr 2007 19:03:51 +0200,
> >
> > Prakash Punnoor wrote:
> > > Am Montag 16 April 2007 schrieb Takashi
Iwai:
> > > > At Mon, 16 Apr 2007 16:51:21 +0200,
> > > >
> > > > Prakash Punnoor wrote:
> > > > > Am Montag 16 April 2007 schrieb
Takashi Iwai:
> > > > > > At Sat, 14 Apr 2007 11:24:49
+0200,
> > > > > >
> > > > > > Prakash Punnoor wrote:
> > > > > > > So my guess is that
probably setting ad1986a_3st_init_verbs is
> > > > > > > wrong for my mobo.
> > > > > > >
> > > > > > > 	{0x0f,
AC_VERB_SET_CONNECT_SEL, 0x2},
> > > > > > > 	{0x10,
AC_VERB_SET_CONNECT_SEL, 0x1},
> > > > > >
> > > > > > You're using older version. 
The latet HG version has different
> > > > > > values there.  Please try the
HG version first then further
> > > > > > debugging...
> > > > >
> > > > > Nope doesn't work. I didn't put in
complete hg drivers
> > > >
> > > > Why not?
> > >
> > > Because within 5 minutes I didn't find an
easy way to deploy the hg tree
> > > into kernel sources except copiying the
directions to correct locations
> > > by examining the kernel directory tree which
is not very user friendly...
> > >
> > > > Anyway, if these verbs are harmful for
your devices, we need to adjust
> > > > it a bit.  Try to comment out these
verbs then confirm that the
> > > > surround is working again.
> > >
> > > It does.
> > >
> > > > Then get the connection of the
> > > > corresponding widgets from
/proc/asound/card0/codec#* file and compare
> > > > with the above values.
> > >
> > > Node 0x0f [Audio Selector] wcaps 0x30010d:
Stereo Amp-Out
> > >   Amp-Out caps: ofs=0x00, nsteps=0x03,
stepsize=0x27, mute=0
> > >   Amp-Out vals:  [0x00 0x00]
> > >   Connection: 8
> > >      0x1f* 0x20 0x1d 0x1d 0x27 0x28 0x29
0x2a
> > > Node 0x10 [Audio Selector] wcaps 0x300101:
Stereo
> > >   Connection: 3
> > >      0x20* 0x1c 0x1f
> > >
> > > Please remember, there is still the bug left,
that when I change ch
> > > setting, I have to alter surr/center/lfe vol
as they are otherwise muted.
> >
> > Hmm, I can't follow the thread right now, so could
you give a detailed
> > problem description again, how to reproduce the
problems?
> 
> With 2.6.21-rc6, surr and center/lfe remain silent,
regardless of alsamixer 
> setting. When I patch ad1986a_3st_init_verbs out, it
works.
> 
> Another related bug is above:
> 
> > > Please remember, there is still the bug left,
that when I change ch
> > > setting, I have to alter surr/center/lfe vol
as they are otherwise muted.
> 
> I guess writing 0xb000 is not enough, as the lower 6
bits are gain value. Or 
> does the gain get applied somewhere else?

It corresponds to "Mic Boost" control.

> > The widgets 0x0f and 0x10 are basically only for
inputs (line and
> > mic-in selections).  Thus I'm wondering why these
affects to outputs
> > at all...
> 
> Well, I am not sure how to read the specs:
> 
> 0x0f Chooses the mic inputs betweeb the MIC_1/2 and
C/LFE pins. Contains the 
> mic gain boost amp.
> 
> 0x10 Chooses the line in inputs between the line in,
surround and MIC_1/2 
> pins.
> 
> I think with those NIDs you actually select between
"I want line in" or "I 
> want surround out" and whatever.

It sounds like so although it's just a guess work.

> I remeber having troubles capturing sound via mic in or
line in using audacity 
> alsa driver. I only managed it with audacity oss driver
(with alsa oss kernel 
> emu). I guess this is related to wrong setting of above
NIDs?

Maybe.  The 0x0f and 0x10 are really mysterious setting on
AD1986A.
 
> > Also, make sure that changing only these verbs do
the same effect.
> > That is, instead of commenting out, put 0 to the
verbs for 0x0f and
> > 0x10 in ad1986a_3st_init_verbs, and don't touch
other lines.
> 
> This works, I get sound.

Then, we seems to need reset 0x0f and 0x10 at each channel
setting.
Try the patch below.  This will reset 0x0f and 0x10 to 0
when 6ch
channel mode is chosen.  On 2ch channel mode, these values
should be
back to make mic and line working (and no surround outputs,
of
course).


Takashi

diff -r 4b6ed4ef4820 pci/hda/patch_analog.c
--- a/pci/hda/patch_analog.c	Mon Apr 16 19:20:17 2007 +0200
+++ b/pci/hda/patch_analog.c	Mon Apr 16 21:07:45 2007 +0200
 -764,9
+764,11  static struct hda_verb ad1986a_ch2_init[
 	/* Surround out -> Line In */
 	{ 0x1c, AC_VERB_SET_PIN_WIDGET_CONTROL, 0x24 },
 	{ 0x1c, AC_VERB_SET_AMP_GAIN_MUTE, 0xb080},
+	{ 0x10, AC_VERB_SET_CONNECT_SEL, 0x1 },
 	/* CLFE -> Mic in */
 	{ 0x1d, AC_VERB_SET_PIN_WIDGET_CONTROL, 0x24 },
 	{ 0x1d, AC_VERB_SET_AMP_GAIN_MUTE, 0xb080},
+	{ 0x0f, AC_VERB_SET_CONNECT_SEL, 0x4 },
 	{ } /* end */
 };
 
 -774,9
+776,11  static struct hda_verb ad1986a_ch4_init[
 	/* Surround out -> Surround */
 	{ 0x1c, AC_VERB_SET_PIN_WIDGET_CONTROL, 0x40 },
 	{ 0x1c, AC_VERB_SET_AMP_GAIN_MUTE, 0xb000},
+	{ 0x10, AC_VERB_SET_CONNECT_SEL, 0x0 },
 	/* CLFE -> Mic in */
 	{ 0x1d, AC_VERB_SET_PIN_WIDGET_CONTROL, 0x24 },
 	{ 0x1d, AC_VERB_SET_AMP_GAIN_MUTE, 0xb080},
+	{ 0x0f, AC_VERB_SET_CONNECT_SEL, 0x4 },
 	{ } /* end */
 };
 
 -784,9
+788,11  static struct hda_verb ad1986a_ch6_init[
 	/* Surround out -> Surround out */
 	{ 0x1c, AC_VERB_SET_PIN_WIDGET_CONTROL, 0x40 },
 	{ 0x1c, AC_VERB_SET_AMP_GAIN_MUTE, 0xb000},
+	{ 0x10, AC_VERB_SET_CONNECT_SEL, 0x0 },
 	/* CLFE -> CLFE */
 	{ 0x1d, AC_VERB_SET_PIN_WIDGET_CONTROL, 0x40 },
 	{ 0x1d, AC_VERB_SET_AMP_GAIN_MUTE, 0xb000},
+	{ 0x0f, AC_VERB_SET_CONNECT_SEL, 0x0 },
 	{ } /* end */
 };
 

------------------------------------------------------------
-------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and
take
control of your XML. No limits. Just data. Click to get it
now.
http://sourcefor
ge.net/powerbar/db2/
_______________________________________________
Alsa-user mailing list
Alsa-userlists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/alsa-user


Re: nForce 430 / ASUS M2NPV-VM snd_hda_intel (surround) sound problems
country flaguser name
Canada
2007-04-16 14:41:46
FYI, I'm eagerly watching this discussion as a user from the
sidelines.  
I'll be happy to test out release candidates once they come
out, but 
until then I don't want to mess with my(mostly) working
settings.

Keep going guys!

Trevor

Takashi Iwai wrote:
> At Mon, 16 Apr 2007 20:42:10 +0200,
> Prakash Punnoor wrote:
>   
>> Am Montag 16 April 2007 schrieb Takashi Iwai:
>>     
>>> At Mon, 16 Apr 2007 19:03:51 +0200,
>>>
>>> Prakash Punnoor wrote:
>>>       
>>>> Am Montag 16 April 2007 schrieb Takashi
Iwai:
>>>>         
>>>>> At Mon, 16 Apr 2007 16:51:21 +0200,
>>>>>
>>>>> Prakash Punnoor wrote:
>>>>>           
>>>>>> Am Montag 16 April 2007 schrieb
Takashi Iwai:
>>>>>>             
>>>>>>> At Sat, 14 Apr 2007 11:24:49
+0200,
>>>>>>>
>>>>>>> Prakash Punnoor wrote:
>>>>>>>               
>>>>>>>> So my guess is that
probably setting ad1986a_3st_init_verbs is
>>>>>>>> wrong for my mobo.
>>>>>>>>
>>>>>>>> 	{0x0f,
AC_VERB_SET_CONNECT_SEL, 0x2},
>>>>>>>> 	{0x10,
AC_VERB_SET_CONNECT_SEL, 0x1},
>>>>>>>>                 
>>>>>>> You're using older version. 
The latet HG version has different
>>>>>>> values there.  Please try the
HG version first then further
>>>>>>> debugging...
>>>>>>>               
>>>>>> Nope doesn't work. I didn't put in
complete hg drivers
>>>>>>             
>>>>> Why not?
>>>>>           
>>>> Because within 5 minutes I didn't find an
easy way to deploy the hg tree
>>>> into kernel sources except copiying the
directions to correct locations
>>>> by examining the kernel directory tree
which is not very user friendly...
>>>>
>>>>         
>>>>> Anyway, if these verbs are harmful for
your devices, we need to adjust
>>>>> it a bit.  Try to comment out these
verbs then confirm that the
>>>>> surround is working again.
>>>>>           
>>>> It does.
>>>>
>>>>         
>>>>> Then get the connection of the
>>>>> corresponding widgets from
/proc/asound/card0/codec#* file and compare
>>>>> with the above values.
>>>>>           
>>>> Node 0x0f [Audio Selector] wcaps 0x30010d:
Stereo Amp-Out
>>>>   Amp-Out caps: ofs=0x00, nsteps=0x03,
stepsize=0x27, mute=0
>>>>   Amp-Out vals:  [0x00 0x00]
>>>>   Connection: 8
>>>>      0x1f* 0x20 0x1d 0x1d 0x27 0x28 0x29
0x2a
>>>> Node 0x10 [Audio Selector] wcaps 0x300101:
Stereo
>>>>   Connection: 3
>>>>      0x20* 0x1c 0x1f
>>>>
>>>> Please remember, there is still the bug
left, that when I change ch
>>>> setting, I have to alter surr/center/lfe
vol as they are otherwise muted.
>>>>         
>>> Hmm, I can't follow the thread right now, so
could you give a detailed
>>> problem description again, how to reproduce the
problems?
>>>       
>> With 2.6.21-rc6, surr and center/lfe remain silent,
regardless of alsamixer 
>> setting. When I patch ad1986a_3st_init_verbs out,
it works.
>>
>> Another related bug is above:
>>
>>     
>>>> Please remember, there is still the bug
left, that when I change ch
>>>> setting, I have to alter surr/center/lfe
vol as they are otherwise muted.
>>>>         
>> I guess writing 0xb000 is not enough, as the lower
6 bits are gain value. Or 
>> does the gain get applied somewhere else?
>>     
>
> It corresponds to "Mic Boost" control.
>
>   
>>> The widgets 0x0f and 0x10 are basically only
for inputs (line and
>>> mic-in selections).  Thus I'm wondering why
these affects to outputs
>>> at all...
>>>       
>> Well, I am not sure how to read the specs:
>>
>> 0x0f Chooses the mic inputs betweeb the MIC_1/2 and
C/LFE pins. Contains the 
>> mic gain boost amp.
>>
>> 0x10 Chooses the line in inputs between the line
in, surround and MIC_1/2 
>> pins.
>>
>> I think with those NIDs you actually select between
"I want line in" or "I 
>> want surround out" and whatever.
>>     
>
> It sounds like so although it's just a guess work.
>
>   
>> I remeber having troubles capturing sound via mic
in or line in using audacity 
>> alsa driver. I only managed it with audacity oss
driver (with alsa oss kernel 
>> emu). I guess this is related to wrong setting of
above NIDs?
>>     
>
> Maybe.  The 0x0f and 0x10 are really mysterious setting
on AD1986A.
>  
>   
>>> Also, make sure that changing only these verbs
do the same effect.
>>> That is, instead of commenting out, put 0 to
the verbs for 0x0f and
>>> 0x10 in ad1986a_3st_init_verbs, and don't touch
other lines.
>>>       
>> This works, I get sound.
>>     
>
> Then, we seems to need reset 0x0f and 0x10 at each
channel setting.
> Try the patch below.  This will reset 0x0f and 0x10 to
0 when 6ch
> channel mode is chosen.  On 2ch channel mode, these
values should be
> back to make mic and line working (and no surround
outputs, of
> course).
>
>
> Takashi
>
> diff -r 4b6ed4ef4820 pci/hda/patch_analog.c
> --- a/pci/hda/patch_analog.c	Mon Apr 16 19:20:17 2007
+0200
> +++ b/pci/hda/patch_analog.c	Mon Apr 16 21:07:45 2007
+0200
>  -764,9 +764,11  static struct hda_verb ad1986a_ch2_init[
>  	/* Surround out -> Line In */
>  	{ 0x1c, AC_VERB_SET_PIN_WIDGET_CONTROL, 0x24 },
>  	{ 0x1c, AC_VERB_SET_AMP_GAIN_MUTE, 0xb080},
> +	{ 0x10, AC_VERB_SET_CONNECT_SEL, 0x1 },
>  	/* CLFE -> Mic in */
>  	{ 0x1d, AC_VERB_SET_PIN_WIDGET_CONTROL, 0x24 },
>  	{ 0x1d, AC_VERB_SET_AMP_GAIN_MUTE, 0xb080},
> +	{ 0x0f, AC_VERB_SET_CONNECT_SEL, 0x4 },
>  	{ } /* end */
>  };
>  
>  -774,9 +776,11  static struct hda_verb ad1986a_ch4_init[
>  	/* Surround out -> Surround */
>  	{ 0x1c, AC_VERB_SET_PIN_WIDGET_CONTROL, 0x40 },
>  	{ 0x1c, AC_VERB_SET_AMP_GAIN_MUTE, 0xb000},
> +	{ 0x10, AC_VERB_SET_CONNECT_SEL, 0x0 },
>  	/* CLFE -> Mic in */
>  	{ 0x1d, AC_VERB_SET_PIN_WIDGET_CONTROL, 0x24 },
>  	{ 0x1d, AC_VERB_SET_AMP_GAIN_MUTE, 0xb080},
> +	{ 0x0f, AC_VERB_SET_CONNECT_SEL, 0x4 },
>  	{ } /* end */
>  };
>  
>  -784,9 +788,11  static struct hda_verb ad1986a_ch6_init[
>  	/* Surround out -> Surround out */
>  	{ 0x1c, AC_VERB_SET_PIN_WIDGET_CONTROL, 0x40 },
>  	{ 0x1c, AC_VERB_SET_AMP_GAIN_MUTE, 0xb000},
> +	{ 0x10, AC_VERB_SET_CONNECT_SEL, 0x0 },
>  	/* CLFE -> CLFE */
>  	{ 0x1d, AC_VERB_SET_PIN_WIDGET_CONTROL, 0x40 },
>  	{ 0x1d, AC_VERB_SET_AMP_GAIN_MUTE, 0xb000},
> +	{ 0x0f, AC_VERB_SET_CONNECT_SEL, 0x0 },
>  	{ } /* end */
>  };
>  
>   


------------------------------------------------------------
-------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and
take
control of your XML. No limits. Just data. Click to get it
now.
http://sourcefor
ge.net/powerbar/db2/
_______________________________________________
Alsa-user mailing list
Alsa-userlists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/alsa-user


Re: nForce 430 / ASUS M2NPV-VM snd_hda_intel (surround) sound problems
country flaguser name
Germany
2007-04-17 10:40:04
Am Montag 16 April 2007 schrieb Takashi Iwai:
> At Mon, 16 Apr 2007 20:42:10 +0200,
> > I guess writing 0xb000 is not enough, as the lower
6 bits are gain value.
> > Or does the gain get applied somewhere else?
>
> It corresponds to "Mic Boost" control.

I don't get it. I am referring to:

        { 0x1c, AC_VERB_SET_AMP_GAIN_MUTE, 0xb000},

Looking at the spec, it tells me your are setting output
amp, left and right 
to unmuted state with 0 gain.

(BTW, what about using more readable values? I thought
drivers should be 
written with less magic numbers? IE:

#define OUT_AMP (1<<15)
#define LEFT_AMP (1<<13)
#define RIGHT_AMP (1<<12)
#define MUTE_AMP (1<<7)

Then we would have

        { 0x1c, AC_VERB_SET_AMP_GAIN_MUTE,
OUT_AMP|LEFT_AMP|RIGHT_AMP},

and 

        { 0x1c, AC_VERB_SET_AMP_GAIN_MUTE,
OUT_AMP|LEFT_AMP|RIGHT_AMP|
MUTE_AMP},

instead of 0xb080 magic number when muting the plug....)


> > Well, I am not sure how to read the specs:
> >
> > 0x0f Chooses the mic inputs betweeb the MIC_1/2
and C/LFE pins. Contains
> > the mic gain boost amp.
> >
> > 0x10 Chooses the line in inputs between the line
in, surround and MIC_1/2
> > pins.
> >
> > I think with those NIDs you actually select
between "I want line in" or
> > "I want surround out" and whatever.
>
> It sounds like so although it's just a guess work.
>
> > I remeber having troubles capturing sound via mic
in or line in using
> > audacity alsa driver. I only managed it with
audacity oss driver (with
> > alsa oss kernel emu). I guess this is related to
wrong setting of above
> > NIDs?
>
> Maybe.  The 0x0f and 0x10 are really mysterious setting
on AD1986A.

When I find time I'll test the capture again and if it
doesn't work, play with 
those NIDs.

> Then, we seems to need reset 0x0f and 0x10 at each
channel setting.
> Try the patch below.  This will reset 0x0f and 0x10 to
0 when 6ch
> channel mode is chosen.  On 2ch channel mode, these
values should be
> back to make mic and line working (and no surround
outputs, of
> course).

Patch works for me. Just the "volume is 0 on ch setting
change" bug left.

-- 
(°=                 =°)
// Prakash Punnoor /\
V_/                 _V

------------------------------------------------------------
-------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and
take
control of your XML. No limits. Just data. Click to get it
now.
http://sourcefor
ge.net/powerbar/db2/
_______________________________________________
Alsa-user mailing list
Alsa-userlists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/alsa-user


[1-3]

about | contact  Other archives ( Real Estate discussion Medical topics )