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.023 / U:89.704 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site