diff options
author | Takashi Iwai <tiwai@suse.de> | 2016-03-04 08:41:41 +0100 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2016-03-04 08:41:41 +0100 |
commit | 6defb60ae4ffe92c29291ed49695daa255b8f559 (patch) | |
tree | 67506a05d171df966b8ca9efa261fa307025e91e /sound/pci/hda/patch_hdmi.c | |
parent | 03367bf7fd30165bda3b037b3078cfa231ba33b7 (diff) | |
parent | 790b415c98de62602810b0eedce26f0f9d6ddd78 (diff) | |
download | linux-6defb60ae4ffe92c29291ed49695daa255b8f559.tar.bz2 |
Merge branch 'for-linus' into for-next
Resolved the conflicts with the latest HDA HDMI fixes.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound/pci/hda/patch_hdmi.c')
-rw-r--r-- | sound/pci/hda/patch_hdmi.c | 19 |
1 files changed, 12 insertions, 7 deletions
diff --git a/sound/pci/hda/patch_hdmi.c b/sound/pci/hda/patch_hdmi.c index 490931d020ee..fe4141c43ddb 100644 --- a/sound/pci/hda/patch_hdmi.c +++ b/sound/pci/hda/patch_hdmi.c @@ -2936,13 +2936,6 @@ static int patch_generic_hdmi(struct hda_codec *codec) is_broxton(codec)) codec->core.link_power_control = 1; - if (codec_has_acomp(codec)) { - codec->depop_delay = 0; - spec->i915_audio_ops.audio_ptr = codec; - spec->i915_audio_ops.pin_eld_notify = intel_pin_eld_notify; - snd_hdac_i915_register_notifier(&spec->i915_audio_ops); - } - if (hdmi_parse_codec(codec) < 0) { if (spec->i915_bound) snd_hdac_i915_exit(&codec->bus->core); @@ -2964,6 +2957,18 @@ static int patch_generic_hdmi(struct hda_codec *codec) init_channel_allocations(); + 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); + } + WARN_ON(spec->dyn_pcm_assign && !codec_has_acomp(codec)); return 0; } |