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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wednesday, March 23, 2022 6:40 PM, Jani <jani.nikula@xxxxxxxxx> wrote :
>On Wed, 23 Mar 2022, "Lee, Shawn C" <shawn.c.lee@xxxxxxxxx> wrote:
>> On Wednesday, March 23, 2022 6:04 PM, Nikula, Jani <jani.nikula@xxxxxxxxx> wrote :
>>>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.
>>>
>>
>> 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@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
>>>
>
>--
>Jani Nikula, Intel Open Source Graphics Center




[Index of Archives]     [AMD Graphics]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux