aboutsummaryrefslogtreecommitdiffstats
path: root/sound/pci
diff options
context:
space:
mode:
Diffstat (limited to 'sound/pci')
-rw-r--r--sound/pci/hda/patch_hdmi.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/sound/pci/hda/patch_hdmi.c b/sound/pci/hda/patch_hdmi.c
index f5060fc7c303..977db17db26c 100644
--- a/sound/pci/hda/patch_hdmi.c
+++ b/sound/pci/hda/patch_hdmi.c
@@ -1496,11 +1496,14 @@ static bool hdmi_present_sense(struct hdmi_spec_per_pin *per_pin, int repoll)
1496 * specification worked this way. Hence, we just ignore the data in 1496 * specification worked this way. Hence, we just ignore the data in
1497 * the unsolicited response to avoid custom WARs. 1497 * the unsolicited response to avoid custom WARs.
1498 */ 1498 */
1499 int present = snd_hda_pin_sense(codec, pin_nid); 1499 int present;
1500 bool update_eld = false; 1500 bool update_eld = false;
1501 bool eld_changed = false; 1501 bool eld_changed = false;
1502 bool ret; 1502 bool ret;
1503 1503
1504 snd_hda_power_up(codec);
1505 present = snd_hda_pin_sense(codec, pin_nid);
1506
1504 mutex_lock(&per_pin->lock); 1507 mutex_lock(&per_pin->lock);
1505 pin_eld->monitor_present = !!(present & AC_PINSENSE_PRESENCE); 1508 pin_eld->monitor_present = !!(present & AC_PINSENSE_PRESENCE);
1506 if (pin_eld->monitor_present) 1509 if (pin_eld->monitor_present)
@@ -1573,6 +1576,7 @@ static bool hdmi_present_sense(struct hdmi_spec_per_pin *per_pin, int repoll)
1573 jack->block_report = !ret; 1576 jack->block_report = !ret;
1574 1577
1575 mutex_unlock(&per_pin->lock); 1578 mutex_unlock(&per_pin->lock);
1579 snd_hda_power_down(codec);
1576 return ret; 1580 return ret;
1577} 1581}
1578 1582