In DisplayID v2.0 CTS data block 0x81 case, there is no any audio
information definition, but drm_detect_monitor_audio didn't filter
it so that it caused eDP dummy audio card be detected improperly.

We observed this issue on some AUO/BOE eDP panel with DID v2.0 CTA
block, and fix issue by adding filter for edid_ext[0]=DATA_BLOCK_CTA
case.

Cc: Jani Nikula <[email protected]>
Cc: Shawn C Lee <[email protected]>

Signed-off-by: Cooper Chiou <[email protected]>
---
 drivers/gpu/drm/drm_edid.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c
index f5f5de362ff2..6c9ae4b130bd 100644
--- a/drivers/gpu/drm/drm_edid.c
+++ b/drivers/gpu/drm/drm_edid.c
@@ -4845,7 +4845,7 @@ bool drm_detect_monitor_audio(struct edid *edid)
        int start_offset, end_offset;
 
        edid_ext = drm_find_cea_extension(edid);
-       if (!edid_ext)
+       if (!edid_ext || (edid_ext[0] == DATA_BLOCK_CTA))
                goto end;
 
        has_audio = ((edid_ext[3] & EDID_BASIC_AUDIO) != 0);
-- 
2.17.1

Reply via email to