[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