From: Takashi Iwai Date: Wed, 25 Jan 2012 10:54:19 +0000 (+0100) Subject: ALSA: hda - Enable sync_write and reset for Conexant codecs X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=4f2864a49bf058184e85c9f5a2f4578f11992c7d;p=GitHub%2Fexynos8895%2Fandroid_kernel_samsung_universal8895.git ALSA: hda - Enable sync_write and reset for Conexant codecs This is an attempt to fix S3-resume problems reported for a few laptops with different Conexant codecs. They show the communication stalls at some time in S3, and the driver falls back into the single-cmd mode. This leads to the silent output or the lack of auto-mute feature. As a workaround, here enables the sync_write and the bus-reset flags to make the communication more stable. Bugzilla: https://bugzilla.novell.com/show_bug.cgi?id=740115 Bugzilla: https://bugzilla.novell.com/show_bug.cgi?id=738397 Signed-off-by: Takashi Iwai --- diff --git a/sound/pci/hda/patch_conexant.c b/sound/pci/hda/patch_conexant.c index a7a5733aa4d2..117ae4c22be0 100644 --- a/sound/pci/hda/patch_conexant.c +++ b/sound/pci/hda/patch_conexant.c @@ -4414,6 +4414,18 @@ static int patch_conexant_auto(struct hda_codec *codec) codec->patch_ops = cx_auto_patch_ops; if (spec->beep_amp) snd_hda_attach_beep_device(codec, spec->beep_amp); + + /* Some laptops with Conexant chips show stalls in S3 resume, + * which falls into the single-cmd mode. + * Better to make reset, then. + */ + if (!codec->bus->sync_write) { + snd_printd("hda_codec: " + "Enable sync_write for stable communication\n"); + codec->bus->sync_write = 1; + codec->bus->allow_bus_reset = 1; + } + return 0; }