lkml.org 
[lkml]   [2009]   [May]   [25]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [Bisected regression] Microphone no longer works on Toshiba Satellite A100
Takashi Iwai wrote:
>>> [snip]
> Thanks. Does the patch below work?

Yes, I just tried it by compiling alsa-driver-1.0.20 after applying
the patch you provided, and I can happily say that it works beautifully.

Thank you so much! I really hope that this patch will be included in
the next ALSA release and the next -rc release for 2.6.30.

>
> (snip)
>> When one first boots this laptop, alsamixer does not show PCM playback and
>> Digital Input capture channels. However, if I run a ALSA-compatible program
>> which uses the PCM playback (such as mpg321) or the Digital Input capture
>> channel (such as arecord), then the respective channels appear in alsamixer.
>> Does this mean that a new "model=..." quirk needs to be written for this
>> this laptop? ("model=toshiba" does not work properly.)
>
> The PCM and Digital Capture Volume are implemented in alsa-lib softvol
> plugin and is irrelevant with the driver model. They appear either
> when you first use PCM via alsa-lib with that configuration, or when
> you restore the previous volume setting via alsactl.
>
> Usually distro udev or init script restores the previous volume via
> alsactl, so this will appear after the very first use after the
> installation...

That clears up a lot of things. I am sorry if this was already documented
in the ALSA documentation/wiki and I missed it.

> thanks,
>
> Takashi

Thank you once again,

M. Vefa Bicakci


> ---
> diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
> index bcbb736..0fd258e 100644
> --- a/sound/pci/hda/patch_realtek.c
> +++ b/sound/pci/hda/patch_realtek.c
> @@ -776,6 +776,12 @@ static void alc_set_input_pin(struct hda_codec *codec, hda_nid_t nid,
> pincap = (pincap & AC_PINCAP_VREF) >> AC_PINCAP_VREF_SHIFT;
> if (pincap & AC_PINCAP_VREF_80)
> val = PIN_VREF80;
> + else if (pincap & AC_PINCAP_VREF_50)
> + val = PIN_VREF50;
> + else if (pincap & AC_PINCAP_VREF_100)
> + val = PIN_VREF100;
> + else if (pincap & AC_PINCAP_VREF_GRD)
> + val = PIN_VREFGRD;
> }
> snd_hda_codec_write(codec, nid, 0, AC_VERB_SET_PIN_WIDGET_CONTROL, val);
> }
>
>
>


\
 
 \ /
  Last update: 2009-05-26 00:43    [W:0.043 / U:0.440 seconds]
©2003-2014 Jasper Spaans. Advertise on this site