diff options
| -rw-r--r-- | sound/pci/hda/patch_hdmi.c | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/sound/pci/hda/patch_hdmi.c b/sound/pci/hda/patch_hdmi.c index 670da3eaf882..64f0a5e73a25 100644 --- a/sound/pci/hda/patch_hdmi.c +++ b/sound/pci/hda/patch_hdmi.c | |||
| @@ -46,6 +46,9 @@ module_param(static_hdmi_pcm, bool, 0644); | |||
| 46 | MODULE_PARM_DESC(static_hdmi_pcm, "Don't restrict PCM parameters per ELD info"); | 46 | MODULE_PARM_DESC(static_hdmi_pcm, "Don't restrict PCM parameters per ELD info"); |
| 47 | 47 | ||
| 48 | #define is_haswell(codec) ((codec)->vendor_id == 0x80862807) | 48 | #define is_haswell(codec) ((codec)->vendor_id == 0x80862807) |
| 49 | #define is_broadwell(codec) ((codec)->vendor_id == 0x80862808) | ||
| 50 | #define is_haswell_plus(codec) (is_haswell(codec) || is_broadwell(codec)) | ||
| 51 | |||
| 49 | #define is_valleyview(codec) ((codec)->vendor_id == 0x80862882) | 52 | #define is_valleyview(codec) ((codec)->vendor_id == 0x80862882) |
| 50 | 53 | ||
| 51 | struct hdmi_spec_per_cvt { | 54 | struct hdmi_spec_per_cvt { |
| @@ -1101,7 +1104,7 @@ static void hdmi_setup_audio_infoframe(struct hda_codec *codec, | |||
| 1101 | if (!channels) | 1104 | if (!channels) |
| 1102 | return; | 1105 | return; |
| 1103 | 1106 | ||
| 1104 | if (is_haswell(codec)) | 1107 | if (is_haswell_plus(codec)) |
| 1105 | snd_hda_codec_write(codec, pin_nid, 0, | 1108 | snd_hda_codec_write(codec, pin_nid, 0, |
| 1106 | AC_VERB_SET_AMP_GAIN_MUTE, | 1109 | AC_VERB_SET_AMP_GAIN_MUTE, |
| 1107 | AMP_OUT_UNMUTE); | 1110 | AMP_OUT_UNMUTE); |
| @@ -1280,7 +1283,7 @@ static int hdmi_setup_stream(struct hda_codec *codec, hda_nid_t cvt_nid, | |||
| 1280 | struct hdmi_spec *spec = codec->spec; | 1283 | struct hdmi_spec *spec = codec->spec; |
| 1281 | int err; | 1284 | int err; |
| 1282 | 1285 | ||
| 1283 | if (is_haswell(codec)) | 1286 | if (is_haswell_plus(codec)) |
| 1284 | haswell_verify_D0(codec, cvt_nid, pin_nid); | 1287 | haswell_verify_D0(codec, cvt_nid, pin_nid); |
| 1285 | 1288 | ||
| 1286 | err = spec->ops.pin_hbr_setup(codec, pin_nid, is_hbr_format(format)); | 1289 | err = spec->ops.pin_hbr_setup(codec, pin_nid, is_hbr_format(format)); |
| @@ -1421,7 +1424,7 @@ static int hdmi_pcm_open(struct hda_pcm_stream *hinfo, | |||
| 1421 | mux_idx); | 1424 | mux_idx); |
| 1422 | 1425 | ||
| 1423 | /* configure unused pins to choose other converters */ | 1426 | /* configure unused pins to choose other converters */ |
| 1424 | if (is_haswell(codec) || is_valleyview(codec)) | 1427 | if (is_haswell_plus(codec) || is_valleyview(codec)) |
| 1425 | intel_not_share_assigned_cvt(codec, per_pin->pin_nid, mux_idx); | 1428 | intel_not_share_assigned_cvt(codec, per_pin->pin_nid, mux_idx); |
| 1426 | 1429 | ||
| 1427 | snd_hda_spdif_ctls_assign(codec, pin_idx, per_cvt->cvt_nid); | 1430 | snd_hda_spdif_ctls_assign(codec, pin_idx, per_cvt->cvt_nid); |
| @@ -1611,7 +1614,7 @@ static int hdmi_add_pin(struct hda_codec *codec, hda_nid_t pin_nid) | |||
| 1611 | if (get_defcfg_connect(config) == AC_JACK_PORT_NONE) | 1614 | if (get_defcfg_connect(config) == AC_JACK_PORT_NONE) |
| 1612 | return 0; | 1615 | return 0; |
| 1613 | 1616 | ||
| 1614 | if (is_haswell(codec)) | 1617 | if (is_haswell_plus(codec)) |
| 1615 | intel_haswell_fixup_connect_list(codec, pin_nid); | 1618 | intel_haswell_fixup_connect_list(codec, pin_nid); |
| 1616 | 1619 | ||
| 1617 | pin_idx = spec->num_pins; | 1620 | pin_idx = spec->num_pins; |
| @@ -2249,7 +2252,7 @@ static int patch_generic_hdmi(struct hda_codec *codec) | |||
| 2249 | codec->spec = spec; | 2252 | codec->spec = spec; |
| 2250 | hdmi_array_init(spec, 4); | 2253 | hdmi_array_init(spec, 4); |
| 2251 | 2254 | ||
| 2252 | if (is_haswell(codec)) { | 2255 | if (is_haswell_plus(codec)) { |
| 2253 | intel_haswell_enable_all_pins(codec, true); | 2256 | intel_haswell_enable_all_pins(codec, true); |
| 2254 | intel_haswell_fixup_enable_dp12(codec); | 2257 | intel_haswell_fixup_enable_dp12(codec); |
| 2255 | } | 2258 | } |
| @@ -2264,7 +2267,7 @@ static int patch_generic_hdmi(struct hda_codec *codec) | |||
| 2264 | return -EINVAL; | 2267 | return -EINVAL; |
| 2265 | } | 2268 | } |
| 2266 | codec->patch_ops = generic_hdmi_patch_ops; | 2269 | codec->patch_ops = generic_hdmi_patch_ops; |
| 2267 | if (is_haswell(codec)) { | 2270 | if (is_haswell_plus(codec)) { |
| 2268 | codec->patch_ops.set_power_state = haswell_set_power_state; | 2271 | codec->patch_ops.set_power_state = haswell_set_power_state; |
| 2269 | codec->dp_mst = true; | 2272 | codec->dp_mst = true; |
| 2270 | } | 2273 | } |
