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://sourceforge.net/powerbar/db2/
_______________________________________________
Alsa-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/alsa-user