All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jani Nikula <jani.nikula@linux.intel.com>
To: FNU VISHWANATHA <fnu.vishwanatha@intel.com>,
	dri-devel@lists.freedesktop.org
Cc: intel-gfx@lists.freedesktop.org,
	FNU VISHWANATHA <fnu.vishwanatha@intel.com>
Subject: Re: [PATCH 2/2] drm/i915/mst: Force link address reprobe after MST resume
Date: Fri, 02 Oct 2026 12:28:27 +0300	[thread overview]
Message-ID: <0c60e374cfbeef12abf349b0750de5df8f4f1b9a@intel.com> (raw)
In-Reply-To: <44a15723fd2b9a9152c382dcf8df86e51bfabbe3@intel.com>

On Fri, 02 Oct 2026, Jani Nikula <jani.nikula@linux.intel.com> wrote:
> On Thu, 01 Oct 2026, FNU VISHWANATHA <fnu.vishwanatha@intel.com> wrote:
>> After resume from warm boot/G3, immediately force a topology link address
>> reprobe to ensure all MST ports are properly detected. This works around a
>> race condition where some MST hubs incorrectly report port status bits before
>> their internal state is fully initialized.
>>
>> By forcing the reprobe immediately after resume, combined with the fix in
>> drm_dp_mst_handle_link_address_port() that detects input->output port
>> transitions, we ensure that all displays are reliably detected even if the
>> hub initially reports incorrect port status.
>>
>> Signed-off-by: FNU VISHWANATHA <fnu.vishwanatha@intel.com>
>
> Is there a bug report about this with logs?
>
>> ---
>>  drivers/gpu/drm/i915/display/intel_dp.c | 18 ++++++++++++++++++
>>  1 file changed, 18 insertions(+)
>>
>> diff --git a/drivers/gpu/drm/i915/display/intel_dp.c b/drivers/gpu/drm/i915/display/intel_dp.c
>> index 3a67990411b3..fceda523efa3 100644
>> --- a/drivers/gpu/drm/i915/display/intel_dp.c
>> +++ b/drivers/gpu/drm/i915/display/intel_dp.c
>> @@ -7088,6 +7088,7 @@ void intel_dp_mst_resume(struct intel_display *display)
>>  
>>         for_each_intel_encoder(display->drm, encoder) {
>>                 struct intel_dp *intel_dp;
>> +               struct drm_dp_mst_branch *mstb;
>>                 int ret;
>>  
>>                 if (encoder->type != INTEL_OUTPUT_DDI)
>> @@ -7102,6 +7103,23 @@ void intel_dp_mst_resume(struct intel_display *display)
>>                 if (ret) {
>>                         intel_dp->is_mst = false;
>>                         drm_dp_mst_topology_mgr_set_mst(&intel_dp->mst.mgr, false);
>> +                       continue;
>> +               }
>> +
>> +               /* After resume, force a link address reprobe to ensure all ports
>> +                * are properly detected. This works around a race condition where
>> +                * some MST hubs incorrectly report port status bits during warm boot/G3.
>> +                * Ref: Sporadic second display not detected after warm boot/G3
>> +                */
>> +               if (intel_dp->is_mst) {
>> +                       mutex_lock(&intel_dp->mst.mgr.lock);
>> +                       mstb = intel_dp->mst.mgr.mst_primary;
>> +                       if (mstb) {
>> +                               drm_dp_mst_topology_get_mstb(mstb);
>> +                               mstb->link_address_sent = false;
>> +                               drm_dp_mst_topology_put_mstb(mstb);
>> +                       }
>> +                       mutex_unlock(&intel_dp->mst.mgr.lock);

This is topology manager internal stuff we have no business messing with
in drivers. So much so that drm_dp_mst_topology_get_mstb() and
drm_dp_mst_topology_put_mstb() are *static* functions in
drm_dp_mst_topology.c.

How did you build and run this?



>>                 }
>>         }
>>  }

-- 
Jani Nikula, Intel

  reply	other threads:[~2026-10-02  9:28 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-10-01 21:57 [PATCH 1/2] drm/mst: Fix sporadic second display not detected after warm boot/G3 FNU VISHWANATHA
2026-10-01 21:57 ` [PATCH 2/2] drm/i915/mst: Force link address reprobe after MST resume FNU VISHWANATHA
2026-10-02  9:23   ` Jani Nikula
2026-10-02  9:28     ` Jani Nikula [this message]
2026-10-01 22:37 ` ✗ Fi.CI.BUILD: failure for series starting with [1/2] drm/mst: Fix sporadic second display not detected after warm boot/G3 Patchwork
2026-10-02  9:21 ` [PATCH 1/2] " Jani Nikula

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=0c60e374cfbeef12abf349b0750de5df8f4f1b9a@intel.com \
    --to=jani.nikula@linux.intel.com \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=fnu.vishwanatha@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.