aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sound/pci/hda/patch_hdmi.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/sound/pci/hda/patch_hdmi.c b/sound/pci/hda/patch_hdmi.c
index 7bd89bf62559..772827b9fb20 100644
--- a/sound/pci/hda/patch_hdmi.c
+++ b/sound/pci/hda/patch_hdmi.c
@@ -1534,11 +1534,12 @@ static void hdmi_present_sense(struct hdmi_spec_per_pin *per_pin, int repoll)
1534 pin_eld->eld_size = eld->eld_size; 1534 pin_eld->eld_size = eld->eld_size;
1535 pin_eld->info = eld->info; 1535 pin_eld->info = eld->info;
1536 1536
1537 /* Haswell-specific workaround: re-setup when the transcoder is 1537 /*
1538 * changed during the stream playback 1538 * Re-setup pin and infoframe. This is needed e.g. when
1539 * - sink is first plugged-in (infoframe is not set up if !monitor_present)
1540 * - transcoder can change during stream playback on Haswell
1539 */ 1541 */
1540 if (is_haswell(codec) && 1542 if (eld->eld_valid && !old_eld_valid && per_pin->setup)
1541 eld->eld_valid && !old_eld_valid && per_pin->setup)
1542 hdmi_setup_audio_infoframe(codec, per_pin, 1543 hdmi_setup_audio_infoframe(codec, per_pin,
1543 per_pin->non_pcm); 1544 per_pin->non_pcm);
1544 } 1545 }