[alsa-devel] [HDA Intel/STAC92xx] mic not working (retasking?)...

Takashi Iwai tiwai at suse.de
Wed Jul 4 14:41:10 CEST 2007


At Wed, 4 Jul 2007 00:12:46 +0100,
Daniel J Blueman wrote:
> 
> On 03/07/07, Takashi Iwai <tiwai at suse.de> wrote:
> > At Mon, 2 Jul 2007 23:39:14 +0100,
> > Daniel J Blueman wrote:
> > > > > > > With both 2.6.20 and 2.6.22 kernels on Ubuntu 7.04 on my Sony Vaio
> > > > > > > SZ240, I'm unable to get my mic connector working at any cost.
> > > > > >
> > > > > > First, show the contents of /proc/asound/card0/codec#* files...
> [snip]
> > > I have discovered the bug preventing me using the external mic socket
> > > before: in the mixer, the user has to select the [internal] mic input,
> > > then re-select the line-in (actually external mic) input; reading from
> > > (eg) /dev/dsp while changing this, the output suddenly is as expected
> > > when the line-in is re-selected.
> >
> > Could you elaborate?  What do yo mean "output" here, and what did you
> > expect?
> 
> Looking at what is printed from the command 'cat /dev/dsp', what is
> shown changes when I de-select 'line-in' and then reselect it. Let me
> know if you're still unclear.
> 
> > > Since we've got started, where should I look for the 'before' and
> > > 'after' state to compare to see into this?
> >
> > Yes, comparing the codec dump file would be helpful.
> 
> Changing from the initial mixer state of 'Line-in' being selected to
> 'Microphone' does not change anything in the
> /proc/asound/card0/codec#{0,1} files. After, changing the input back
> to 'Line-in' does show a change [1] (which we'd expect).
> 
> My interpretation of this is that (in the initial state) the STAC
> registers are set to record from the internal mic (which doesn't
> actually exist; there is a tiny amount of crosstalk) and the mixer
> settings ALSA reports show the line-in/external mic selected [2].

The problem sounds like a mismatch of initialization verb and the
internal mixer state.  If it's the case, the patch below should fix,
then.


Takashi

diff -r 523aa7d0e49d pci/hda/patch_sigmatel.c
--- a/pci/hda/patch_sigmatel.c	Wed Jul 04 10:35:29 2007 +0200
+++ b/pci/hda/patch_sigmatel.c	Wed Jul 04 14:38:39 2007 +0200
@@ -2337,7 +2337,7 @@ static struct hda_verb vaio_init[] = {
 	{0x0d, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_VREF80 }, /* Mic? (<- 0x2) */
 	{0x0e, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_IN }, /* CD */
 	{0x14, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_VREF80 }, /* Mic? */
-	{0x15, AC_VERB_SET_CONNECT_SEL, 0x2}, /* mic-sel: 0a,0d,14,02 */
+	{0x15, AC_VERB_SET_CONNECT_SEL, 0x1}, /* mic-sel: 0a,0d,14,02 */
 	{0x02, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE}, /* HP */
 	{0x05, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE}, /* Speaker */
 	{0x09, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(0)}, /* capture sw/vol -> 0x8 */
@@ -2353,7 +2353,7 @@ static struct hda_verb vaio_ar_init[] = 
 	{0x0e, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_IN }, /* CD */
 /*	{0x11, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT },*/ /* Optical Out */
 	{0x14, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_VREF80 }, /* Mic? */
-	{0x15, AC_VERB_SET_CONNECT_SEL, 0x2}, /* mic-sel: 0a,0d,14,02 */
+	{0x15, AC_VERB_SET_CONNECT_SEL, 0x1}, /* mic-sel: 0a,0d,14,02 */
 	{0x02, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE}, /* HP */
 	{0x05, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE}, /* Speaker */
 /*	{0x10, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE},*/ /* Optical Out */


More information about the Alsa-devel mailing list