aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTakashi Iwai <tiwai@suse.de>2015-05-31 03:27:29 -0400
committerTakashi Iwai <tiwai@suse.de>2015-05-31 03:27:29 -0400
commit6b6d00076bf33fd1bfc95fa44218a6a089bc249a (patch)
tree282158704c41de9492e8d26071bc074ebedc6c03
parent2f80b2958abe5658000d5ad9b45a36ecf879666e (diff)
ALSA: hda - Fix jack detection at resume with VT codecs
VT202x codecs seem requiring some delay after the resume D0 power transition for making the jack detection working again. Without the delay soon after D0, the jack is always detected as unplugged. Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=98921 Signed-off-by: Takashi Iwai <tiwai@suse.de>
-rw-r--r--sound/pci/hda/patch_via.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/sound/pci/hda/patch_via.c b/sound/pci/hda/patch_via.c
index 31a95cca015d..bab6c04932aa 100644
--- a/sound/pci/hda/patch_via.c
+++ b/sound/pci/hda/patch_via.c
@@ -449,6 +449,15 @@ static int via_suspend(struct hda_codec *codec)
449 449
450 return 0; 450 return 0;
451} 451}
452
453static int via_resume(struct hda_codec *codec)
454{
455 /* some delay here to make jack detection working (bko#98921) */
456 msleep(10);
457 codec->patch_ops.init(codec);
458 regcache_sync(codec->core.regmap);
459 return 0;
460}
452#endif 461#endif
453 462
454#ifdef CONFIG_PM 463#ifdef CONFIG_PM
@@ -475,6 +484,7 @@ static const struct hda_codec_ops via_patch_ops = {
475 .stream_pm = snd_hda_gen_stream_pm, 484 .stream_pm = snd_hda_gen_stream_pm,
476#ifdef CONFIG_PM 485#ifdef CONFIG_PM
477 .suspend = via_suspend, 486 .suspend = via_suspend,
487 .resume = via_resume,
478 .check_power_status = via_check_power_status, 488 .check_power_status = via_check_power_status,
479#endif 489#endif
480}; 490};