ALSA: hda-intel: reorder HDMI audio enabling sequence
authorWu Fengguang <fengguang.wu@intel.com>
Mon, 17 Nov 2008 08:57:33 +0000 (16:57 +0800)
committerTakashi Iwai <tiwai@suse.de>
Mon, 17 Nov 2008 09:03:41 +0000 (10:03 +0100)
Reorder HDMI audio enabling sequence so that
1) the sink knows about the coming audio stream
2) unmute
3) start transferring audio samples

The theory is that in the path A=>B=>C, we first make C ready, and then
enable B, and lastly allow A to send audio samples.

Signed-off-by: Wu Fengguang <wfg@linux.intel.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/pci/hda/patch_intelhdmi.c

index 939b37ba70747c6d7efa3b481e45755673aaca3c..d99cd6297249546e8138f74028080e0109476904 100644 (file)
@@ -312,16 +312,16 @@ static void hdmi_write_dip_byte(struct hda_codec *codec, hda_nid_t nid,
 
 static void hdmi_enable_output(struct hda_codec *codec)
 {
-       /* Enable pin out and unmute */
-       snd_hda_sequence_write(codec, pinout_enable_verb);
-       if (get_wcaps(codec, PIN_NID) & AC_WCAP_OUT_AMP)
-               snd_hda_codec_write(codec, PIN_NID, 0,
-                               AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE);
-
        /* Enable Audio InfoFrame Transmission */
        hdmi_set_dip_index(codec, PIN_NID, 0x0, 0x0);
        snd_hda_codec_write(codec, PIN_NID, 0, AC_VERB_SET_HDMI_DIP_XMIT,
                                                AC_DIPXMIT_BEST);
+       /* Unmute */
+       if (get_wcaps(codec, PIN_NID) & AC_WCAP_OUT_AMP)
+               snd_hda_codec_write(codec, PIN_NID, 0,
+                               AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE);
+       /* Enable pin out */
+       snd_hda_sequence_write(codec, pinout_enable_verb);
 }
 
 static void hdmi_disable_output(struct hda_codec *codec)