All of lore.kernel.org
 help / color / mirror / Atom feed
From: Harry Wentland <hwentlan@amd.com>
To: "Francis, David" <David.Francis@amd.com>,
	"Wentland, Harry" <Harry.Wentland@amd.com>,
	"dri-devel@lists.freedesktop.org"
	<dri-devel@lists.freedesktop.org>
Subject: Re: [PATCH v8 5/6] drm/dp_mst: Add new quirk for Synaptics MST hubs
Date: Mon, 26 Aug 2019 20:52:59 +0000	[thread overview]
Message-ID: <e9c1d24c-fb2c-d083-c156-522151d23a6c@amd.com> (raw)
In-Reply-To: <BYAPR12MB3224CAE206357175878B70B5EFA10@BYAPR12MB3224.namprd12.prod.outlook.com>

On 2019-08-26 3:14 p.m., Francis, David wrote:
> On 2019-08-26 2:05 p.m., David Francis wrote:
>>> Synaptics DP1.4 hubs (BRANCH_ID 0x90CC24) do not
>>> support virtual DPCD registers, but do support DSC.
>>> The DSC caps can be read from the physical aux,
>>> like in SST DSC. These hubs have many different
>>> DEVICE_IDs.  Add a new quirk to detect this case.
>>>
>>> Cc: Lyude Paul <lyude@redhat.com>
>>> Cc: Jani Nikula <jani.nikula@linux.intel.com>
>>> Signed-off-by: David Francis <David.Francis@amd.com>
>>> ---
>>>  drivers/gpu/drm/drm_dp_helper.c | 2 ++
>>>  include/drm/drm_dp_helper.h     | 7 +++++++
>>>  2 files changed, 9 insertions(+)
>>>
>>> diff --git a/drivers/gpu/drm/drm_dp_helper.c b/drivers/gpu/drm/drm_dp_helper.c
>>> index 2cc21eff4cf3..fc39323e7d52 100644
>>> --- a/drivers/gpu/drm/drm_dp_helper.c
>>> +++ b/drivers/gpu/drm/drm_dp_helper.c
>>> @@ -1270,6 +1270,8 @@ static const struct dpcd_quirk dpcd_quirk_list[] = {
>>>        { OUI(0x00, 0x10, 0xfa), DEVICE_ID_ANY, false, BIT(DP_DPCD_QUIRK_NO_PSR) },
>>>        /* CH7511 seems to leave SINK_COUNT zeroed */
>>>        { OUI(0x00, 0x00, 0x00), DEVICE_ID('C', 'H', '7', '5', '1', '1'), false, BIT(DP_DPCD_QUIRK_NO_SINK_COUNT) },
>>> +     /* Synaptics DP1.4 MST hubs can support DSC without virtual DPCD */
>>> +     { OUI(0x90, 0xCC, 0x24), DEVICE_ID_ANY, true, BIT(DP_DPCD_QUIRK_DSC_WITHOUT_VIRTUAL_DPCD) },
>>
>> This seems to be generic OUI for Synaptics [1]. Could this cause us to
>> cast the net too wide?
>>
>> Even if we check that it's DP_DPCD_REV >= 1.4 there's a good chance
>> Synaptics is fixing this in the future and won't require the quirk.
>>
>> [1] https://aruljohn.com/mac/vendor/Synaptics
>>
>>
>> Harry
> 
> It's not pretty, but
> - Currently the net of "all Synaptics devices with rev>DP1.4" catches every device we care about and none we don't
> - If a future Synaptics device supports virtual DPCD properly, we will check for that first and never resort to the workaround (see patch 6/6)
> - We don't know any of the properties of any hypothetical future Synaptics hardware, so we can't create cases for them now
> 

That's fair enough. Thanks for the explanation.

Reviewed-by: Harry Wentland <harry.wentland@amd.com>

Harry

> Also, received offline review from AMD MST DSC (Non-Linux) expert Wenjing Liu, giving me permission  o mark this patch
> Reviewed-by: Wenjing Liu <Wenjing.Liu@amd.com>
> 
>>
>>>  };
>>>
>>>  #undef OUI
>>> diff --git a/include/drm/drm_dp_helper.h b/include/drm/drm_dp_helper.h
>>> index 8364502f92cf..a1331b08705f 100644
>>> --- a/include/drm/drm_dp_helper.h
>>> +++ b/include/drm/drm_dp_helper.h
>>> @@ -1434,6 +1434,13 @@ enum drm_dp_quirk {
>>>         * The driver should ignore SINK_COUNT during detection.
>>>         */
>>>        DP_DPCD_QUIRK_NO_SINK_COUNT,
>>> +     /**
>>> +      * @DP_DPCD_QUIRK_DSC_WITHOUT_VIRTUAL_DPCD:
>>> +      *
>>> +      * The device supports MST DSC despite not supporting Virtual DPCD.
>>> +      * The DSC caps can be read from the physical aux instead.
>>> +      */
>>> +     DP_DPCD_QUIRK_DSC_WITHOUT_VIRTUAL_DPCD,
>>>  };
>>>
>>>  /**
> 
> ________________________________________
> From: Wentland, Harry <Harry.Wentland@amd.com>
> Sent: August 26, 2019 3:05 PM
> To: Francis, David; dri-devel@lists.freedesktop.org
> Subject: Re: [PATCH v8 5/6] drm/dp_mst: Add new quirk for Synaptics MST hubs
> 
> On 2019-08-26 2:05 p.m., David Francis wrote:
>> Synaptics DP1.4 hubs (BRANCH_ID 0x90CC24) do not
>> support virtual DPCD registers, but do support DSC.
>> The DSC caps can be read from the physical aux,
>> like in SST DSC. These hubs have many different
>> DEVICE_IDs.  Add a new quirk to detect this case.
>>
>> Cc: Lyude Paul <lyude@redhat.com>
>> Cc: Jani Nikula <jani.nikula@linux.intel.com>
>> Signed-off-by: David Francis <David.Francis@amd.com>
>> ---
>>  drivers/gpu/drm/drm_dp_helper.c | 2 ++
>>  include/drm/drm_dp_helper.h     | 7 +++++++
>>  2 files changed, 9 insertions(+)
>>
>> diff --git a/drivers/gpu/drm/drm_dp_helper.c b/drivers/gpu/drm/drm_dp_helper.c
>> index 2cc21eff4cf3..fc39323e7d52 100644
>> --- a/drivers/gpu/drm/drm_dp_helper.c
>> +++ b/drivers/gpu/drm/drm_dp_helper.c
>> @@ -1270,6 +1270,8 @@ static const struct dpcd_quirk dpcd_quirk_list[] = {
>>       { OUI(0x00, 0x10, 0xfa), DEVICE_ID_ANY, false, BIT(DP_DPCD_QUIRK_NO_PSR) },
>>       /* CH7511 seems to leave SINK_COUNT zeroed */
>>       { OUI(0x00, 0x00, 0x00), DEVICE_ID('C', 'H', '7', '5', '1', '1'), false, BIT(DP_DPCD_QUIRK_NO_SINK_COUNT) },
>> +     /* Synaptics DP1.4 MST hubs can support DSC without virtual DPCD */
>> +     { OUI(0x90, 0xCC, 0x24), DEVICE_ID_ANY, true, BIT(DP_DPCD_QUIRK_DSC_WITHOUT_VIRTUAL_DPCD) },
> 
> This seems to be generic OUI for Synaptics [1]. Could this cause us to
> cast the net too wide?
> 
> Even if we check that it's DP_DPCD_REV >= 1.4 there's a good chance
> Synaptics is fixing this in the future and won't require the quirk.
> 
> [1] https://aruljohn.com/mac/vendor/Synaptics
> 
> Harry
> 
>>  };
>>
>>  #undef OUI
>> diff --git a/include/drm/drm_dp_helper.h b/include/drm/drm_dp_helper.h
>> index 8364502f92cf..a1331b08705f 100644
>> --- a/include/drm/drm_dp_helper.h
>> +++ b/include/drm/drm_dp_helper.h
>> @@ -1434,6 +1434,13 @@ enum drm_dp_quirk {
>>        * The driver should ignore SINK_COUNT during detection.
>>        */
>>       DP_DPCD_QUIRK_NO_SINK_COUNT,
>> +     /**
>> +      * @DP_DPCD_QUIRK_DSC_WITHOUT_VIRTUAL_DPCD:
>> +      *
>> +      * The device supports MST DSC despite not supporting Virtual DPCD.
>> +      * The DSC caps can be read from the physical aux instead.
>> +      */
>> +     DP_DPCD_QUIRK_DSC_WITHOUT_VIRTUAL_DPCD,
>>  };
>>
>>  /**
>>
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

  reply	other threads:[~2019-08-26 20:53 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-08-26 18:05 [PATCH v8 0/6] DSC MST support in DRM David Francis
2019-08-26 18:05 ` [PATCH v8 1/6] drm/dp_mst: Add PBN calculation for DSC modes David Francis
2019-08-26 18:36   ` Harry Wentland
2019-08-26 18:05 ` [PATCH v8 2/6] drm/dp_mst: Parse FEC capability on MST ports David Francis
2019-08-26 18:36   ` Harry Wentland
2019-08-26 18:05 ` [PATCH v8 3/6] drm/dp_mst: Add MST support to DP DPCD R/W functions David Francis
2019-08-26 18:41   ` Harry Wentland
2019-08-26 18:05 ` [PATCH v8 4/6] drm/dp_mst: Fill branch->num_ports David Francis
2019-08-26 18:44   ` Harry Wentland
2019-08-26 18:05 ` [PATCH v8 5/6] drm/dp_mst: Add new quirk for Synaptics MST hubs David Francis
2019-08-26 19:05   ` Harry Wentland
2019-08-26 19:14     ` Francis, David
2019-08-26 20:52       ` Harry Wentland [this message]
2019-08-27  7:21       ` Jani Nikula
2019-08-26 18:05 ` [PATCH v8 6/6] drm/dp_mst: Add helpers for MST DSC and virtual DPCD aux David Francis
2019-08-26 19:16   ` Francis, David
2019-08-26 20:27     ` Lyude Paul
2019-08-26 20:51   ` Harry Wentland

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=e9c1d24c-fb2c-d083-c156-522151d23a6c@amd.com \
    --to=hwentlan@amd.com \
    --cc=David.Francis@amd.com \
    --cc=Harry.Wentland@amd.com \
    --cc=dri-devel@lists.freedesktop.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.