All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Nautiyal, Ankit K" <ankit.k.nautiyal@intel.com>
To: <imre.deak@intel.com>
Cc: <intel-gfx@lists.freedesktop.org>
Subject: Re: [PATCH 10/11] drm/i915/dp_mst: Make HBLANK expansion quirk work for logical ports
Date: Thu, 28 Mar 2024 09:00:24 +0530	[thread overview]
Message-ID: <c5410b93-9904-4e04-bb62-71e2fbee0088@intel.com> (raw)
In-Reply-To: <ZgQrAKqiC9SEie4g@ideak-desk.fi.intel.com>


On 3/27/2024 7:49 PM, Imre Deak wrote:
> On Wed, Mar 27, 2024 at 01:40:58PM +0530, Nautiyal, Ankit K wrote:
>> On 3/21/2024 1:41 AM, Imre Deak wrote:
>>> The DPCD OUI of the logical port on a Dell UHBR monitor - on which the
>>> AUX device is used to enable DSC - is all 0. To detect if the HBLANK
>>> expansion quirk is required for this monitor use the OUI of the port's
>>> parent instead.
>>>
>>> Since in the above case the DPCD of both the logical port and the parent
>>> port reports being a sink device (vs. branch device) type, read the
>>> proper sink/branch OUI based on the DPCD device type.
>>>
>>> This is required by a follow-up patch enabling the quirk for the above
>>> Dell monitor.
>>>
>>> Signed-off-by: Imre Deak <imre.deak@intel.com>
>>> ---
>>>    drivers/gpu/drm/i915/display/intel_dp_mst.c | 22 +++++++++++++++------
>>>    1 file changed, 16 insertions(+), 6 deletions(-)
>>>
>>> diff --git a/drivers/gpu/drm/i915/display/intel_dp_mst.c b/drivers/gpu/drm/i915/display/intel_dp_mst.c
>>> index 516b00f791420..76a8fb21b8e52 100644
>>> --- a/drivers/gpu/drm/i915/display/intel_dp_mst.c
>>> +++ b/drivers/gpu/drm/i915/display/intel_dp_mst.c
>>> @@ -1512,23 +1512,33 @@ intel_dp_mst_read_decompression_port_dsc_caps(struct intel_dp *intel_dp,
>>>    static bool detect_dsc_hblank_expansion_quirk(const struct intel_connector *connector)
>>>    {
>>>    	struct drm_i915_private *i915 = to_i915(connector->base.dev);
>>> +	struct drm_dp_aux *aux = connector->dp.dsc_decompression_aux;
>>>    	struct drm_dp_desc desc;
>>>    	u8 dpcd[DP_RECEIVER_CAP_SIZE];
>>> -	if (!connector->dp.dsc_decompression_aux)
>>> +	if (!aux)
>>>    		return false;
>>> -	if (drm_dp_read_desc(connector->dp.dsc_decompression_aux,
>>> -			     &desc, true) < 0)
>>> +	/*
>>> +	 * A logical port's OUI (at least for affected sinks) is all 0, so
>>> +	 * instead of that the parent port's OUI is used for identification.
>>> +	 */
>>> +	if (drm_dp_mst_port_is_logical(connector->port)) {
>>> +		aux = drm_dp_mst_aux_for_parent(connector->port);
>>> +		if (!aux)
>>> +			aux = &connector->mst_port->aux;
>> As I understand, we are setting connector->mst_port as intel_dp, in the
>> caller intel_dp_add_mst_connector so its unlikely that aux can be NULL, but
>> do you see if we need to check for aux?
> Yes, intel_connector::mst_port (always) points to the intel_dp of the
> MST root port, and aux will be always initialized for all the registered
> DP encoders/intel_dps; so mst_port->aux will always point to a
> valid/non-NULL AUX device. (In any case above we take the address of
> intel_dp::aux, which can't be NULL.)

Agreed. The change LGTM.

Reviewed-by: Ankit Nautiyal <ankit.k.nautiyal@intel.com>


>
>> Regards,
>>
>> Ankit
>>
>>> +	}
>>> +
>>> +	if (drm_dp_read_dpcd_caps(aux, dpcd) < 0)
>>> +		return false;
>>> +
>>> +	if (drm_dp_read_desc(aux, &desc, drm_dp_is_branch(dpcd)) < 0)
>>>    		return false;
>>>    	if (!drm_dp_has_quirk(&desc,
>>>    			      DP_DPCD_QUIRK_HBLANK_EXPANSION_REQUIRES_DSC))
>>>    		return false;
>>> -	if (drm_dp_read_dpcd_caps(connector->dp.dsc_decompression_aux, dpcd) < 0)
>>> -		return false;
>>> -
>>>    	if (!(dpcd[DP_RECEIVE_PORT_0_CAP_0] & DP_HBLANK_EXPANSION_CAPABLE))
>>>    		return false;

  reply	other threads:[~2024-03-28  3:30 UTC|newest]

Thread overview: 46+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-03-20 20:11 [PATCH 00/11] drm/i915/dp: Few MTL/DSC and a UHBR monitor fix Imre Deak
2024-03-20 20:11 ` [PATCH 01/11] drm/i915/dp: Fix DSC line buffer depth programming Imre Deak
2024-03-26 10:00   ` Nautiyal, Ankit K
2024-03-26 19:50     ` Manasi Navare
2024-03-27 14:46       ` Imre Deak
2024-03-28 13:37   ` Imre Deak
2024-04-03 12:10     ` Jani Nikula
2024-03-20 20:11 ` [PATCH 02/11] drm/i915/dp_mst: Fix symbol clock when calculating the DSC DPT bpp limit Imre Deak
2024-03-26 10:01   ` Nautiyal, Ankit K
2024-03-26 20:04     ` Manasi Navare
2024-03-26 20:07       ` Manasi Navare
2024-03-20 20:11 ` [PATCH 03/11] drm/i915/dp_mst: Fix BW limit check when calculating DSC DPT bpp Imre Deak
2024-03-26 10:05   ` Nautiyal, Ankit K
2024-03-20 20:11 ` [PATCH 04/11] drm/i915/dp_mst: Account for channel coding efficiency in the DSC DPT bpp limit Imre Deak
2024-03-26 10:06   ` Nautiyal, Ankit K
2024-03-20 20:11 ` [PATCH 05/11] drm/i915/dp_mst: Account with the DSC DPT bpp limit on MTL Imre Deak
2024-03-26 10:17   ` Nautiyal, Ankit K
2024-03-26 10:21     ` Nautiyal, Ankit K
2024-03-26 12:11     ` Imre Deak
2024-03-26 12:59       ` Nautiyal, Ankit K
2024-03-29 18:39         ` Manasi Navare
2024-04-02 12:18           ` Imre Deak
2024-03-20 20:11 ` [PATCH 06/11] drm/i915/dp_mst: Sanitize calculating the DSC DPT bpp limit Imre Deak
2024-03-26 12:54   ` Nautiyal, Ankit K
2024-03-26 20:13     ` Manasi Navare
2024-03-27 14:50       ` Imre Deak
2024-03-20 20:11 ` [PATCH 07/11] drm/dp: Add drm_dp_uhbr_channel_coding_supported() Imre Deak
2024-03-26 12:53   ` Nautiyal, Ankit K
2024-03-26 20:14     ` Manasi Navare
2024-03-20 20:11 ` [PATCH 08/11] drm/dp_mst: Factor out drm_dp_mst_port_is_logical() Imre Deak
2024-03-26 12:52   ` Nautiyal, Ankit K
2024-03-20 20:11 ` [PATCH 09/11] drm/dp_mst: Add drm_dp_mst_aux_for_parent() Imre Deak
2024-03-27  9:00   ` Nautiyal, Ankit K
2024-03-27 14:25     ` Imre Deak
2024-03-28  3:27       ` Nautiyal, Ankit K
2024-03-20 20:11 ` [PATCH 10/11] drm/i915/dp_mst: Make HBLANK expansion quirk work for logical ports Imre Deak
2024-03-27  8:10   ` Nautiyal, Ankit K
2024-03-27 14:19     ` Imre Deak
2024-03-28  3:30       ` Nautiyal, Ankit K [this message]
2024-03-20 20:11 ` [PATCH 11/11] drm/i915/dp_mst: Enable HBLANK expansion quirk for UHBR rates Imre Deak
2024-03-27  8:54   ` Nautiyal, Ankit K
2024-03-20 23:51 ` [PATCH 00/11] drm/i915/dp: Few MTL/DSC and a UHBR monitor fix Almahallawy, Khaled
2024-03-21  1:39 ` ✗ Fi.CI.CHECKPATCH: warning for " Patchwork
2024-03-21  1:39 ` ✗ Fi.CI.SPARSE: " Patchwork
2024-03-21  1:54 ` ✓ Fi.CI.BAT: success " Patchwork
2024-03-21 12:39 ` ✗ Fi.CI.IGT: failure " Patchwork

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=c5410b93-9904-4e04-bb62-71e2fbee0088@intel.com \
    --to=ankit.k.nautiyal@intel.com \
    --cc=imre.deak@intel.com \
    --cc=intel-gfx@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.