Re: [PATCH] drm/edid: Add Vive Pro 2 to non-desktop list

From: Jani Nikula
Date: Thu Feb 16 2023 - 15:46:43 EST


On Thu, 16 Feb 2023, Dmitry Osipenko <dmitry.osipenko@xxxxxxxxxxxxx> wrote:
> On 2/16/23 21:26, Iaroslav Boliukin wrote:
>> On 2/14/23 12:50, Dmitry Osipenko wrote:
>>> On 2/13/23 14:50, Jani Nikula wrote:
>>>> On Mon, 13 Feb 2023, Dmitry Osipenko <dmitry.osipenko@xxxxxxxxxxxxx>
>>>> wrote:
>>>>> On 2/13/23 12:56, Jani Nikula wrote:
>>>>>> On Sun, 12 Feb 2023, Dmitry Osipenko
>>>>>> <dmitry.osipenko@xxxxxxxxxxxxx> wrote:
>>>>>>> Hi,
>>>>>>>
>>>>>>> On 1/18/22 20:00, Yaroslav Bolyukin wrote:
>>>>>>>
>>>>>>> Add a brief commit message, describing a user-visible effect of this
>>>>>>> patch. Tell that this change prevents exposing headset as a regular
>>>>>>> display to the system, while it will work with SteamVR.
>>>>>>>
>>>>>>>> Signed-off-by: Yaroslav Bolyukin <iam@xxxxxxx>
>>>>>>>> ---
>>>>>>>>   drivers/gpu/drm/drm_edid.c | 3 ++-
>>>>>>>>   1 file changed, 2 insertions(+), 1 deletion(-)
>>>>>>>>
>>>>>>>> diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c
>>>>>>>> index 12893e7be..fdb8f0a6f 100644
>>>>>>>> --- a/drivers/gpu/drm/drm_edid.c
>>>>>>>> +++ b/drivers/gpu/drm/drm_edid.c
>>>>>>>> @@ -200,9 +200,10 @@ static const struct edid_quirk {
>>>>>>>>       EDID_QUIRK('V', 'L', 'V', 0x91be, EDID_QUIRK_NON_DESKTOP),
>>>>>>>>       EDID_QUIRK('V', 'L', 'V', 0x91bf, EDID_QUIRK_NON_DESKTOP),
>>>>>>>>   -    /* HTC Vive and Vive Pro VR Headsets */
>>>>>>>> +    /* HTC Vive, Vive Pro and Vive Pro 2 VR Headsets */
>>>>>>>
>>>>>>> Nit: I'd keep the original comment, or change it to a generic "HTC VR
>>>>>>> Headsets" to prevent further comment changes
>>>>>>>
>>>>>>>>       EDID_QUIRK('H', 'V', 'R', 0xaa01, EDID_QUIRK_NON_DESKTOP),
>>>>>>>>       EDID_QUIRK('H', 'V', 'R', 0xaa02, EDID_QUIRK_NON_DESKTOP),
>>>>>>>> +    EDID_QUIRK('H', 'V', 'R', 0xaa04, EDID_QUIRK_NON_DESKTOP),
>>>>>>>>         /* Oculus Rift DK1, DK2, CV1 and Rift S VR Headsets */
>>>>>>>>       EDID_QUIRK('O', 'V', 'R', 0x0001, EDID_QUIRK_NON_DESKTOP),
>>>>>>>>
>>>>>>>> base-commit: 99613159ad749543621da8238acf1a122880144e
>>>>>>>
>>>>>>> Please send the v2 patch with the added EDID for Cosmos VR and the
>>>>>>> addressed comments. Thanks!
>>>>>>
>>>>>> Yeah, we'll need to EDID to check that it doesn't have the Microsoft
>>>>>> VSDB to indicate non-desktop. See 2869f599c0d8 ("drm/edid: support
>>>>>> Microsoft extension for HMDs and specialized monitors").
>>>>>
>>>>> Do you mean to skip using the EDID_QUIRK_NON_DESKTOP if MS VSDB entry
>>>>> presents in the EDID?
>>>>>
>>>>> These HTC EDIDs don't have MS VSDB, otherwise the quirk wouldn't be
>>>>> needed.
>>>>
>>>> Okay, I didn't know that. I just observed that the original patch was
>>>> sent before the the MS VSDB parsing was added.
>>>
>>> This will be good to mention in the v2 commit message.
>>>
>>
>> This headset does support some kind of HMD signalling, however, this is
>> not a microsoft-specific extension (0xca125c) but part of the DisplayId
>> spec, "Display Product Primary Use Case" field is set to "7".

I just sent patches to hopefully fix this, and make the quirk
unnecessary [1].

BR,
Jani.

[1] https://patchwork.freedesktop.org/series/114116/


>>
>> The problem is, I have no idea what spec I should refer to, as I can't
>> find this errata in the original spec, and the only reference to this
>> value I see is in https://git.linuxtv.org/edid-decode.git utility:
>>
>> https://git.linuxtv.org/edid-decode.git/tree/parse-displayid-block.cpp?ref=aa956e0dd5fb85271dde900ea1ebdda795af7f8b#n1676
>>
>> I would like to implement this feature, but I need some spec reference.
>
> The [1] says it's "VESA DisplayID Standard v2.0", which should be okay
> to refer, IMO.
>
> [1]
> https://learn.microsoft.com/en-us/windows-hardware/drivers/display/specialized-monitors-edid-extension

--
Jani Nikula, Intel Open Source Graphics Center