diff mbox series

drm/edid: Add Vive Pro 2 to non-desktop list

Message ID 20220118170037.14584-1-iam@lach.pw (mailing list archive)
State New, archived
Headers show
Series drm/edid: Add Vive Pro 2 to non-desktop list | expand

Commit Message

Yaroslav Bolyukin Jan. 18, 2022, 5 p.m. UTC
Signed-off-by: Yaroslav Bolyukin <iam@lach.pw>
---
 drivers/gpu/drm/drm_edid.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)


base-commit: 99613159ad749543621da8238acf1a122880144e

Comments

Dmitry Osipenko Feb. 12, 2023, 2:31 p.m. UTC | #1
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@lach.pw>
> ---
>  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!
Jani Nikula Feb. 13, 2023, 9:56 a.m. UTC | #2
On Sun, 12 Feb 2023, Dmitry Osipenko <dmitry.osipenko@collabora.com> 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@lach.pw>
>> ---
>>  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").


BR,
Jani.
Dmitry Osipenko Feb. 13, 2023, 10:08 a.m. UTC | #3
On 2/13/23 12:56, Jani Nikula wrote:
> On Sun, 12 Feb 2023, Dmitry Osipenko <dmitry.osipenko@collabora.com> 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@lach.pw>
>>> ---
>>>  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.
Jani Nikula Feb. 13, 2023, 11:50 a.m. UTC | #4
On Mon, 13 Feb 2023, Dmitry Osipenko <dmitry.osipenko@collabora.com> wrote:
> On 2/13/23 12:56, Jani Nikula wrote:
>> On Sun, 12 Feb 2023, Dmitry Osipenko <dmitry.osipenko@collabora.com> 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@lach.pw>
>>>> ---
>>>>  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.

BR,
Jani.
Dmitry Osipenko Feb. 14, 2023, 11:50 a.m. UTC | #5
On 2/13/23 14:50, Jani Nikula wrote:
> On Mon, 13 Feb 2023, Dmitry Osipenko <dmitry.osipenko@collabora.com> wrote:
>> On 2/13/23 12:56, Jani Nikula wrote:
>>> On Sun, 12 Feb 2023, Dmitry Osipenko <dmitry.osipenko@collabora.com> 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@lach.pw>
>>>>> ---
>>>>>  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.
Yaroslav Bolyukin Feb. 16, 2023, 6:26 p.m. UTC | #6
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@collabora.com> wrote:
>>> On 2/13/23 12:56, Jani Nikula wrote:
>>>> On Sun, 12 Feb 2023, Dmitry Osipenko <dmitry.osipenko@collabora.com> 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@lach.pw>
>>>>>> ---
>>>>>>   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".

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.
Dmitry Osipenko Feb. 16, 2023, 7:17 p.m. UTC | #7
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@collabora.com>
>>> wrote:
>>>> On 2/13/23 12:56, Jani Nikula wrote:
>>>>> On Sun, 12 Feb 2023, Dmitry Osipenko
>>>>> <dmitry.osipenko@collabora.com> 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@lach.pw>
>>>>>>> ---
>>>>>>>   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".
> 
> 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 Feb. 16, 2023, 8:46 p.m. UTC | #8
On Thu, 16 Feb 2023, Dmitry Osipenko <dmitry.osipenko@collabora.com> 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@collabora.com>
>>>> wrote:
>>>>> On 2/13/23 12:56, Jani Nikula wrote:
>>>>>> On Sun, 12 Feb 2023, Dmitry Osipenko
>>>>>> <dmitry.osipenko@collabora.com> 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@lach.pw>
>>>>>>>> ---
>>>>>>>>   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
diff mbox series

Patch

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 */
 	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),