From: Takashi Iwai Date: Wed, 22 Jul 2009 16:15:10 +0000 (+0200) Subject: ALSA: hda - Restore GPIO1 properly at resume with AD1984A X-Git-Url: http://git.lede-project.org./?a=commitdiff_plain;h=4012ade9338c05428162e85cc9b149dcadf1ce85;p=openwrt%2Fstaging%2Fblogic.git ALSA: hda - Restore GPIO1 properly at resume with AD1984A The commit 099db17e66294b02814dee01c81d9abbbeece93e introduced a regression at suspend/resume where the GPIO1 bit isn't properly restored, thus the speaker output gets muted initially after resume. The fix is simple, use the cached write for storing GPIO data. Reference: Novell bnc#522764 https://bugzilla.novell.com/show_bug.cgi?id=522764 Signed-off-by: Takashi Iwai --- diff --git a/sound/pci/hda/patch_analog.c b/sound/pci/hda/patch_analog.c index f795ee588cc7..e8e6a43865c2 100644 --- a/sound/pci/hda/patch_analog.c +++ b/sound/pci/hda/patch_analog.c @@ -3742,7 +3742,7 @@ static int ad1884a_mobile_master_sw_put(struct snd_kcontrol *kcontrol, int mute = (!ucontrol->value.integer.value[0] && !ucontrol->value.integer.value[1]); /* toggle GPIO1 according to the mute state */ - snd_hda_codec_write(codec, 0x01, 0, AC_VERB_SET_GPIO_DATA, + snd_hda_codec_write_cache(codec, 0x01, 0, AC_VERB_SET_GPIO_DATA, mute ? 0x02 : 0x0); return ret; }