Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 206473
b: refs/heads/master
c: a39afc8
h: refs/heads/master
i:
  206471: a1d2161
v: v3
  • Loading branch information
Takashi Iwai committed Jul 28, 2010
1 parent 36aaf0d commit 9da4afb
Show file tree
Hide file tree
Showing 3 changed files with 17 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: 7ccc3eface57b6e1773fce009dac8a3da081b8b1
refs/heads/master: a39afc8eb47bc0d8b23fbdb930529171d1752203
13 changes: 13 additions & 0 deletions trunk/sound/pci/hda/patch_hdmi.c
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,10 @@ struct hdmi_spec {
*/
struct hda_multi_out multiout;
unsigned int codec_type;

/* misc flags */
/* PD bit indicates only the update, not the current state */
unsigned int old_pin_detect:1;
};


Expand Down Expand Up @@ -616,6 +620,9 @@ static void hdmi_setup_audio_infoframe(struct hda_codec *codec, hda_nid_t nid,
* Unsolicited events
*/

static void hdmi_present_sense(struct hda_codec *codec, hda_nid_t pin_nid,
struct hdmi_eld *eld);

static void hdmi_intrinsic_event(struct hda_codec *codec, unsigned int res)
{
struct hdmi_spec *spec = codec->spec;
Expand All @@ -632,6 +639,12 @@ static void hdmi_intrinsic_event(struct hda_codec *codec, unsigned int res)
if (index < 0)
return;

if (spec->old_pin_detect) {
if (pind)
hdmi_present_sense(codec, tag, &spec->sink_eld[index]);
pind = spec->sink_eld[index].monitor_present;
}

spec->sink_eld[index].monitor_present = pind;
spec->sink_eld[index].eld_valid = eldv;

Expand Down
3 changes: 3 additions & 0 deletions trunk/sound/pci/hda/patch_nvhdmi.c
Original file line number Diff line number Diff line change
Expand Up @@ -478,6 +478,7 @@ static int patch_nvhdmi_8ch_89(struct hda_codec *codec)

codec->spec = spec;
spec->codec_type = HDA_CODEC_NVIDIA_MCP89;
spec->old_pin_detect = 1;

if (hdmi_parse_codec(codec) < 0) {
codec->spec = NULL;
Expand Down Expand Up @@ -508,6 +509,7 @@ static int patch_nvhdmi_8ch_7x(struct hda_codec *codec)
spec->multiout.max_channels = 8;
spec->multiout.dig_out_nid = nvhdmi_master_con_nid_7x;
spec->codec_type = HDA_CODEC_NVIDIA_MCP7X;
spec->old_pin_detect = 1;

codec->patch_ops = nvhdmi_patch_ops_8ch_7x;

Expand All @@ -528,6 +530,7 @@ static int patch_nvhdmi_2ch(struct hda_codec *codec)
spec->multiout.max_channels = 2;
spec->multiout.dig_out_nid = nvhdmi_master_con_nid_7x;
spec->codec_type = HDA_CODEC_NVIDIA_MCP7X;
spec->old_pin_detect = 1;

codec->patch_ops = nvhdmi_patch_ops_2ch;

Expand Down

0 comments on commit 9da4afb

Please sign in to comment.