OSDN Git Service

ALSA: hda/hdmi: Consider ELD is invalid when no SAD is present
authorKai-Heng Feng <kai.heng.feng@canonical.com>
Thu, 2 Dec 2021 07:33:35 +0000 (15:33 +0800)
committerTakashi Iwai <tiwai@suse.de>
Thu, 2 Dec 2021 08:05:21 +0000 (09:05 +0100)
There's a system that reports a bogus HDMI audio interface:
$ cat eld#2.0
monitor_present         1
eld_valid               1
monitor_name
connection_type         DisplayPort
eld_version             [0x2] CEA-861D or below
edid_version            [0x3] CEA-861-B, C or D
manufacture_id          0xe430
product_id              0x690
port_id                 0x0
support_hdcp            0
support_ai              0
audio_sync_delay        0
speakers                [0xffff] FL/FR LFE FC RL/RR RC FLC/FRC RLC/RRC FLW/FRW FLH/FRH TC FCH
sad_count               0

Since playing audio is not possible without SAD, also consider ELD is
invalid for this case.

Signed-off-by: Kai-Heng Feng <kai.heng.feng@canonical.com>
Link: https://lore.kernel.org/r/20211202073338.1384768-1-kai.heng.feng@canonical.com
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/pci/hda/patch_hdmi.c

index 65d2c55..33e5f1a 100644 (file)
@@ -1535,7 +1535,7 @@ static void update_eld(struct hda_codec *codec,
                }
        }
 
-       if (!eld->eld_valid || eld->eld_size <= 0) {
+       if (!eld->eld_valid || eld->eld_size <= 0 || eld->info.sad_count <= 0) {
                eld->eld_valid = false;
                eld->eld_size = 0;
        }