On Mon, 21 Mar 2022, Cooper Chiou <cooper.chiou@xxxxxxxxx> wrote: > 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. Out of curiosity, what does the CTA DisplayID Data Block have for Data Block revision? I haven't found any mention anywhere that it should have any correspondence to the CEA *extension* revision number, which is supposed to be 1..3, and really only 3 for about a decade now. Both the DisplayID v1.3 and v2.0 specs only mention revision 0. BR, Jani. > > Cc: Jani Nikula <jani.nikula@xxxxxxxxx> > Cc: Shawn C Lee <shawn.c.lee@xxxxxxxxx> > > Signed-off-by: Cooper Chiou <cooper.chiou@xxxxxxxxx> > --- > 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); -- Jani Nikula, Intel Open Source Graphics Center