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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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
Alsa-user@xxxxxxxxxxxxxxxxxxxxx
https://lists.sourceforge.net/lists/listinfo/alsa-user

[Index of Archives]     [ALSA Devel]     [Linux Audio Users]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [Yosemite Photos]     [KDE Users]     [Fedora Tools]

  Powered by Linux