ALSA: hda - hdmi add wmb barrier for audio component
authorLibin Yang <libin.yang@linux.intel.com>
Fri, 4 Mar 2016 06:33:06 +0000 (14:33 +0800)
committerTakashi Iwai <tiwai@suse.de>
Fri, 4 Mar 2016 07:37:59 +0000 (08:37 +0100)
To make sure audio_ptr is set before intel_audio_codec_enable()
or intel_audio_codec_disable() calling pin_eld_notify(),
this patch adds wmb barrier to prevent optimizing.

Signed-off-by: Libin Yang <libin.yang@linux.intel.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/pci/hda/patch_hdmi.c

index 8ee78dbd4c6054065186501b59ecd957c25285a8..6858e88c7326d19cdceb020eeae7b6cc5f7a18a1 100644 (file)
@@ -2480,6 +2480,11 @@ static int patch_generic_hdmi(struct hda_codec *codec)
        if (codec_has_acomp(codec)) {
                codec->depop_delay = 0;
                spec->i915_audio_ops.audio_ptr = codec;
+               /* intel_audio_codec_enable() or intel_audio_codec_disable()
+                * will call pin_eld_notify with using audio_ptr pointer
+                * We need make sure audio_ptr is really setup
+                */
+               wmb();
                spec->i915_audio_ops.pin_eld_notify = intel_pin_eld_notify;
                snd_hdac_i915_register_notifier(&spec->i915_audio_ops);
        }