All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jani Nikula <jani.nikula@linux.intel.com>
To: "Souza\, Jose" <jose.souza@intel.com>,
	"intel-gfx\@lists.freedesktop.org"
	<intel-gfx@lists.freedesktop.org>, "Deak\,
	Imre" <imre.deak@intel.com>
Subject: Re: [Intel-gfx] [PATCH] drm/i915/dp: Skip the HW readout of DPCD on disabled encoders
Date: Sat, 16 Oct 2021 00:59:46 +0300	[thread overview]
Message-ID: <87v91yt0dp.fsf@intel.com> (raw)
In-Reply-To: <b5ca89da3e8e7d3cff3c314e0b99807416b4e416.camel@intel.com>

On Fri, 15 Oct 2021, "Souza, Jose" <jose.souza@intel.com> wrote:
> On Fri, 2021-10-15 at 15:10 +0300, Imre Deak wrote:
>> Reading out the DP encoders' DPCD during booting or resume is only
>> required for enabled encoders: such encoders may be modesetted during
>> the initial commit and the link training this involves depends on an
>> initialized DPCD. For DDI encoders reading out the DPCD is skipped, do
>> the same on pre-DDI platforms.
>
> Missing fixes tag
>
>> 
>> Cc: José Roberto de Souza <jose.souza@intel.com>
>> Signed-off-by: Imre Deak <imre.deak@intel.com>
>> ---
>>  drivers/gpu/drm/i915/display/intel_dp.c | 3 +++
>>  1 file changed, 3 insertions(+)
>> 
>> diff --git a/drivers/gpu/drm/i915/display/intel_dp.c b/drivers/gpu/drm/i915/display/intel_dp.c
>> index 9d8132dd4cc5a..23de500d56b52 100644
>> --- a/drivers/gpu/drm/i915/display/intel_dp.c
>> +++ b/drivers/gpu/drm/i915/display/intel_dp.c
>> @@ -2007,6 +2007,9 @@ void intel_dp_sync_state(struct intel_encoder *encoder,
>>  {
>>  	struct intel_dp *intel_dp = enc_to_intel_dp(encoder);
>>  
>> +	if (!crtc_state)
>> +		return;
>
> crtc_state is not used

This is why it's so subtle. The commit a532cde31de3 ("drm/i915/tc: Fix
TypeC port init/resume time sanitization") changes when the sync_state
hook is called, and now it's also called for disabled encoders, and
crtc_state != NULL is the way to check that now. Which absolutely must
be documented in this fix! (And I'm not sure if even that is enough in
the long term, it seems to me the change is just too subtle and we'll
get it wrong again.)

I'm guessing the intel_dp_max_common_rate() call gets inlined in
intel_dp_sync_state(), and it goes wrong with intel_dp->num_common_rates
being 0 and the array index being -1.

Anyway, having said that, we'll need to stop guessing and dig into the
root cause.

BR,
Jani.



>
>> +
>>  	/*
>>  	 * Don't clobber DPCD if it's been already read out during output
>>  	 * setup (eDP) or detect.
>

-- 
Jani Nikula, Intel Open Source Graphics Center

  reply	other threads:[~2021-10-15 21:59 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-10-15 12:10 [Intel-gfx] [PATCH] drm/i915/dp: Skip the HW readout of DPCD on disabled encoders Imre Deak
2021-10-15 13:58 ` [Intel-gfx] ✓ Fi.CI.BAT: success for " Patchwork
2021-10-15 17:35 ` [Intel-gfx] [PATCH] " Souza, Jose
2021-10-15 21:59   ` Jani Nikula [this message]
2021-10-16  5:50     ` Imre Deak
2021-10-15 20:46 ` [Intel-gfx] ✗ Fi.CI.IGT: failure for " 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=87v91yt0dp.fsf@intel.com \
    --to=jani.nikula@linux.intel.com \
    --cc=imre.deak@intel.com \
    --cc=intel-gfx@lists.freedesktop.org \
    --cc=jose.souza@intel.com \
    /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.