ALSA: hda - verify pin:cvt connection on preparing a stream for Intel HDMI codec
authorMengdong Lin <mengdong.lin@intel.com>
Thu, 20 Mar 2014 05:01:06 +0000 (13:01 +0800)
committerTakashi Iwai <tiwai@suse.de>
Thu, 20 Mar 2014 06:36:17 +0000 (07:36 +0100)
commit2df6742f613840a0b0a1590fb28f7af5b058a673
treefa4ba7e30daf271d847ad65e573968d46ef58de8
parent67b2fb48cbd593ebb2796eb0c918abc17b88c1b5
ALSA: hda - verify pin:cvt connection on preparing a stream for Intel HDMI codec

This is a temporary fix for some Intel HDMI codecs to avoid no sound output for
a resuming playback after S3.

After S3, the audio driver restores pin:cvt connection selections by
snd_hda_codec_resume_cache(). However this can happen before the gfx side is
ready and such connect selection is overlooked by HW. After gfx is ready, the
pins make the default selection again. And this will cause multiple pins share
a same convertor and mute control will affect each other. Thus a resumed audio
playback become silent after S3.

This patch verifies pin:cvt connection on preparing a stream, to assure the pin
selects the right convetor and an assigned convertor is not shared by other
unused pins. Apply this fix-up on Haswell, Broadwell and Valleyview (Baytrail).

We need this temporary fix before a reliable software communication channel is
established between audio and gfx, to sync audio/gfx operations.

Signed-off-by: Mengdong Lin <mengdong.lin@intel.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/pci/hda/patch_hdmi.c