lkml.org 
[lkml]   [2014]   [Sep]   [3]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 3.14 18/88] ALSA: hda - restore the gpio led after resume
    Date
    3.14-stable review patch.  If anyone has any objections, please let me know.

    ------------------

    From: Hui Wang <hui.wang@canonical.com>

    commit f475371aa65de84fa483a998ab7594531026b9d9 upstream.

    On some HP laptops, the mute led is controlled by codec gpio.

    When some machine resume from s3/s4, the codec gpio data will be
    cleared to 0 by BIOS:
    Before suspend:
    IO[3]: enable=1, dir=1, wake=0, sticky=0, data=1, unsol=0
    After resume:
    IO[3]: enable=1, dir=1, wake=0, sticky=0, data=0, unsol=0

    To skip the AFG node to enter D3 can't fix this problem.

    A workaround is to restore the gpio data when the system resume
    back from s3/s4. It is safe even on the machines without this
    problem.

    BugLink: https://bugs.launchpad.net/bugs/1358116
    Tested-by: Franz Hsieh <franz.hsieh@canonical.com>
    Signed-off-by: Hui Wang <hui.wang@canonical.com>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    ---
    sound/pci/hda/patch_realtek.c | 9 +++++++++
    1 file changed, 9 insertions(+)

    --- a/sound/pci/hda/patch_realtek.c
    +++ b/sound/pci/hda/patch_realtek.c
    @@ -3064,6 +3064,15 @@ static int alc269_resume(struct hda_code
    snd_hda_codec_resume_cache(codec);
    alc_inv_dmic_sync(codec, true);
    hda_call_check_power_status(codec, 0x01);
    +
    + /* on some machine, the BIOS will clear the codec gpio data when enter
    + * suspend, and won't restore the data after resume, so we restore it
    + * in the driver.
    + */
    + if (spec->gpio_led)
    + snd_hda_codec_write(codec, codec->afg, 0, AC_VERB_SET_GPIO_DATA,
    + spec->gpio_led);
    +
    if (spec->has_alc5505_dsp)
    alc5505_dsp_resume(codec);




    \
     
     \ /
      Last update: 2014-09-04 02:01    [W:4.054 / U:0.176 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site