Loading sound/pci/hda/patch_hdmi.c +13 −0 Original line number Diff line number Diff line Loading @@ -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; }; Loading Loading @@ -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; Loading @@ -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; Loading sound/pci/hda/patch_nvhdmi.c +3 −0 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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; Loading @@ -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; Loading Loading
sound/pci/hda/patch_hdmi.c +13 −0 Original line number Diff line number Diff line Loading @@ -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; }; Loading Loading @@ -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; Loading @@ -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; Loading
sound/pci/hda/patch_nvhdmi.c +3 −0 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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; Loading @@ -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; Loading