* Callbacks
  */
 
-static int intel_hdmi_playback_pcm_cleanup(struct hda_pcm_stream *hinfo,
+static int intel_hdmi_playback_pcm_prepare(struct hda_pcm_stream *hinfo,
                                           struct hda_codec *codec,
+                                          unsigned int stream_tag,
+                                          unsigned int format,
                                           struct snd_pcm_substream *substream)
 {
-       struct intel_hdmi_spec *spec = codec->spec;
+       hdmi_set_channel_count(codec, cvt_nid,
+                              substream->runtime->channels);
 
-       hdmi_stop_infoframe_trans(codec, pin_nid);
+       hdmi_setup_audio_infoframe(codec, cvt_nid, substream);
 
-       snd_hda_codec_cleanup_stream(codec, hinfo->nid);
+       snd_hda_codec_setup_stream(codec, hinfo->nid, stream_tag, 0, format);
        return 0;
 }
 
-static int intel_hdmi_playback_pcm_prepare(struct hda_pcm_stream *hinfo,
+static int intel_hdmi_playback_pcm_cleanup(struct hda_pcm_stream *hinfo,
                                           struct hda_codec *codec,
-                                          unsigned int stream_tag,
-                                          unsigned int format,
                                           struct snd_pcm_substream *substream)
 {
-       hdmi_set_channel_count(codec, cvt_nid,
-                              substream->runtime->channels);
+       struct intel_hdmi_spec *spec = codec->spec;
 
-       hdmi_setup_audio_infoframe(codec, cvt_nid, substream);
+       hdmi_stop_infoframe_trans(codec, pin_nid);
 
-       snd_hda_codec_setup_stream(codec, hinfo->nid, stream_tag, 0, format);
+       snd_hda_codec_cleanup_stream(codec, hinfo->nid);
        return 0;
 }