|
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 |
  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-user lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/alsa-user
|
|
| Re: nForce 430 / ASUS M2NPV-VM
snd_hda_intel (surround) sound problems |
  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-user lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/alsa-user
|
|
| Re: nForce 430 / ASUS M2NPV-VM
snd_hda_intel (surround) sound problems |
  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-user lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/alsa-user
|
|
[1-3]
|
|