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 <tiwai@suse.de>
This commit is contained in:
parent
7bfe059e38
commit
4f2864a49b
1 changed files with 12 additions and 0 deletions
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue