[Intel-gfx] [PATCH] drm/edid: filter DisplayID v2.0 CTA block in audio detection

Jani Nikula jani.nikula at intel.com
Wed Mar 23 10:03:51 UTC 2022


On Mon, 21 Mar 2022, Cooper Chiou <cooper.chiou at intel.com> 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 at intel.com>
> Cc: Shawn C Lee <shawn.c.lee at intel.com>
>
> Signed-off-by: Cooper Chiou <cooper.chiou at intel.com>
> ---
>  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


More information about the Intel-gfx mailing list