Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 347448
b: refs/heads/master
c: 6ffe168
h: refs/heads/master
v: v3
  • Loading branch information
Mengdong Lin authored and Takashi Iwai committed Dec 18, 2012
1 parent 8bbfeee commit 3a57821
Show file tree
Hide file tree
Showing 2 changed files with 29 additions and 1 deletion.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: b78562b10fa66175e30b76073e32a0ad8d92aa83
refs/heads/master: 6ffe168f822cf7f777987cddc00ade542fd73bf0
28 changes: 28 additions & 0 deletions trunk/sound/pci/hda/patch_hdmi.c
Original file line number Diff line number Diff line change
Expand Up @@ -1681,6 +1681,30 @@ static const struct hda_codec_ops generic_hdmi_patch_ops = {
.unsol_event = hdmi_unsol_event,
};

static void intel_haswell_fixup_connect_list(struct hda_codec *codec)
{
unsigned int vendor_param;
hda_nid_t list[3] = {0x2, 0x3, 0x4};

vendor_param = snd_hda_codec_read(codec, 0x08, 0, 0xf81, 0);
if (vendor_param == -1 || vendor_param & 0x02)
return;

/* enable DP1.2 mode */
vendor_param |= 0x02;
snd_hda_codec_read(codec, 0x08, 0, 0x781, vendor_param);

vendor_param = snd_hda_codec_read(codec, 0x08, 0, 0xf81, 0);
if (vendor_param == -1 || !(vendor_param & 0x02))
return;

/* override 3 pins connection list */
snd_hda_override_conn_list(codec, 0x05, 3, list);
snd_hda_override_conn_list(codec, 0x06, 3, list);
snd_hda_override_conn_list(codec, 0x07, 3, list);
}


static int patch_generic_hdmi(struct hda_codec *codec)
{
struct hdmi_spec *spec;
Expand All @@ -1690,6 +1714,10 @@ static int patch_generic_hdmi(struct hda_codec *codec)
return -ENOMEM;

codec->spec = spec;

if (codec->vendor_id == 0x80862807)
intel_haswell_fixup_connect_list(codec);

if (hdmi_parse_codec(codec) < 0) {
codec->spec = NULL;
kfree(spec);
Expand Down

0 comments on commit 3a57821

Please sign in to comment.