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

Lee, Shawn C shawn.c.lee at intel.com
Wed Mar 23 13:35:26 UTC 2022


On Wednesday, March 23, 2022 6:40 PM, Jani <jani.nikula at intel.com> wrote :
>On Wed, 23 Mar 2022, "Lee, Shawn C" <shawn.c.lee at intel.com> wrote:
>> On Wednesday, March 23, 2022 6:04 PM, Nikula, Jani <jani.nikula at intel.com> wrote :
>>>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.
>>>
>>
>> We don't get many issues in EDID with DisplayID structure. In this case, the revision number is "0" as well.
>> As you mentioned, DisplayID v1.3 and v2.0 spec define the block revision value is always 0. Do you think it would cause any problem?
>
>A lot of places in the EDID parser expect CEA revision >= 3. This isn't true for DisplayID data blocks, so we end up skipping a bunch of stuff if there's no CEA extension and only a DisplayID block.
>
>I'm fixing this in my series.
>

Thanks for the information! Just like you said, block revision ID is always zero in DisplayID block.
Do you think we have to make sure revision ID is "0" instead of the other value?

Best regards,
Shawn

>
>BR,
>Jani.
>
>>
>> Best regards,
>> Shawn
>>
>>>>
>>>> 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
>>>
>
>--
>Jani Nikula, Intel Open Source Graphics Center


More information about the Intel-gfx mailing list