浏览代码

ALSA: hda - Fix missing ELD update at unplugging

i915 get_eld ops may return an error when no encoder is connected, and
currently we regard the error as fatal and skip the whole ELD
handling.  This ended up with the missing ELD update at unplugging.

This patch fixes the issue by treating the error as the unplugged
state, instead of skipping the rest.

Reported-by: Libin Yang <libin.yang@linux.intel.com>
Cc: <stable@vger.kernel.org> # v4.5
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Takashi Iwai 9 年之前
父节点
当前提交
c64c1437af
共有 1 个文件被更改,包括 1 次插入2 次删除
  1. 1 2
      sound/pci/hda/patch_hdmi.c

+ 1 - 2
sound/pci/hda/patch_hdmi.c

@@ -1484,11 +1484,10 @@ static void sync_eld_via_acomp(struct hda_codec *codec,
 	int size;
 	int size;
 
 
 	mutex_lock(&per_pin->lock);
 	mutex_lock(&per_pin->lock);
+	eld->monitor_present = false;
 	size = snd_hdac_acomp_get_eld(&codec->bus->core, per_pin->pin_nid,
 	size = snd_hdac_acomp_get_eld(&codec->bus->core, per_pin->pin_nid,
 				      &eld->monitor_present, eld->eld_buffer,
 				      &eld->monitor_present, eld->eld_buffer,
 				      ELD_MAX_SIZE);
 				      ELD_MAX_SIZE);
-	if (size < 0)
-		goto unlock;
 	if (size > 0) {
 	if (size > 0) {
 		size = min(size, ELD_MAX_SIZE);
 		size = min(size, ELD_MAX_SIZE);
 		if (snd_hdmi_parse_eld(codec, &eld->info,
 		if (snd_hdmi_parse_eld(codec, &eld->info,