aboutsummaryrefslogtreecommitdiffstats
path: root/sound/pci/hda/patch_hdmi.c
diff options
context:
space:
mode:
authorTakashi Iwai <tiwai@suse.de>2016-03-21 07:42:06 -0400
committerTakashi Iwai <tiwai@suse.de>2016-03-28 03:38:40 -0400
commit2c1c9b86c6b22dc0cbac3f4ca2c8272c472dc463 (patch)
treeffd9b872a834ef91aeac48bad7d9d9b73e46afd0 /sound/pci/hda/patch_hdmi.c
parent44bb6d0c3f690e60670517859925417bd7c42a22 (diff)
ALSA: hda - Override HDMI setup_stream ops for Intel HSW+
Instead of checking at each time with is_haswell_plus() macro, override the setup_stream ops itself for HSW+ chips. 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.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/sound/pci/hda/patch_hdmi.c b/sound/pci/hda/patch_hdmi.c
index fcd207d3ce7d..985518891b99 100644
--- a/sound/pci/hda/patch_hdmi.c
+++ b/sound/pci/hda/patch_hdmi.c
@@ -864,9 +864,6 @@ static int hdmi_setup_stream(struct hda_codec *codec, hda_nid_t cvt_nid,
864 struct hdmi_spec *spec = codec->spec; 864 struct hdmi_spec *spec = codec->spec;
865 int err; 865 int err;
866 866
867 if (is_haswell_plus(codec))
868 haswell_verify_D0(codec, cvt_nid, pin_nid);
869
870 err = spec->ops.pin_hbr_setup(codec, pin_nid, is_hbr_format(format)); 867 err = spec->ops.pin_hbr_setup(codec, pin_nid, is_hbr_format(format));
871 868
872 if (err) { 869 if (err) {
@@ -2307,6 +2304,14 @@ static void register_i915_notifier(struct hda_codec *codec)
2307 snd_hdac_i915_register_notifier(&spec->i915_audio_ops); 2304 snd_hdac_i915_register_notifier(&spec->i915_audio_ops);
2308} 2305}
2309 2306
2307/* setup_stream ops override for HSW+ */
2308static int i915_hsw_setup_stream(struct hda_codec *codec, hda_nid_t cvt_nid,
2309 hda_nid_t pin_nid, u32 stream_tag, int format)
2310{
2311 haswell_verify_D0(codec, cvt_nid, pin_nid);
2312 return hdmi_setup_stream(codec, cvt_nid, pin_nid, stream_tag, format);
2313}
2314
2310/* Intel Haswell and onwards; audio component with eld notifier */ 2315/* Intel Haswell and onwards; audio component with eld notifier */
2311static int patch_i915_hsw_hdmi(struct hda_codec *codec) 2316static int patch_i915_hsw_hdmi(struct hda_codec *codec)
2312{ 2317{
@@ -2338,6 +2343,8 @@ static int patch_i915_hsw_hdmi(struct hda_codec *codec)
2338 codec->depop_delay = 0; 2343 codec->depop_delay = 0;
2339 codec->auto_runtime_pm = 1; 2344 codec->auto_runtime_pm = 1;
2340 2345
2346 spec->ops.setup_stream = i915_hsw_setup_stream;
2347
2341 err = hdmi_parse_codec(codec); 2348 err = hdmi_parse_codec(codec);
2342 if (err < 0) { 2349 if (err < 0) {
2343 generic_spec_free(codec); 2350 generic_spec_free(codec);