Hi Wolfgang,

On Tue, Sep 02, 2025 at 04:32:10PM +0200, Wolfgang Frisch wrote:
> Hi,
> 
> On 8/28/25 7:49 PM, Imre Deak wrote:
> > diff --git a/drivers/gpu/drm/display/drm_dp_helper.c 
> > b/drivers/gpu/drm/display/drm_dp_helper.c
> > -           ret = drm_dp_dpcd_probe(aux, DP_LANE0_1_STATUS);
> > +           ret = drm_dp_dpcd_probe(aux, DP_TRAINING_PATTERN_SET);
> The original commit d34d6feaf4a76833effcec0b148b65946b04cde8 broke my setup,
> with a monitor connected via Thunderbolt. Linux 6.16.4 temporarily fixed the
> issue by reverting to DP_LANE0_1_STATUS. My monitor is a Samsung C34J79x
> connected via Thunderbolt 3.
> 
> To be clear:
> - working: DP_LANE0_1_STATUS
> - not working: DP_TRAINING_PATTERN_SET

This looks like the issue tracked at
https://gitlab.freedesktop.org/drm/amd/-/issues/4500

The correct solution there is to disable the DPCD probing, which AMD
folks are working on atm. Until that, could you give a go to patch [1]
on the above ticket equivalent to this solution, applying on v6.17, or
the attached patch achieving the same on v6.16.4?

Also it would help if you could add a dmesg log on the ticket taken
after booting with drm.debug=0x100 and reproducing the problem (vs. two
other drm.debug=0x100 logs, one with the above DP_TRAINING_PATTERN_SET
-> DP_LANE0_1_STATUS change and another one with DPCD probing disabled
as I requested above, taken after booting up and connecting the
dock/monitor).

Thanks,
Imre

[1] 
https://gitlab.freedesktop.org/-/project/4522/uploads/8b39006b61fe67674d9b41fd92224c32/0001-drm-dp-Disable-DPCD-probing.patch

> With the latter I get:
> > +thunderbolt 0000:c5:00.6: 2: timeout reading config space 2 from 0x20
> > +thunderbolt 0000:c5:00.6: 2: timeout reading config space 2 from 0x5
> > +thunderbolt 0000:c5:00.6: 2: cannot find TB_VSE_CAP_PLUG_EVENTS aborting
> >  thunderbolt 1-2: new device found, vendor=0x175 device=0x20ab
> >  thunderbolt 1-2: SAMSUNG ELECTRONICS CO.,LTD C34J79x
> >  thunderbolt 1-0:2.1: new retimer found, vendor=0x1da0 device=0x8830
> > +thunderbolt 0000:c5:00.6: 0:6 <-> 2:10 (DP): not active, tearing down
> > +thunderbolt 0000:c5:00.6: 0:7 <-> 2:10 (DP): not active, tearing down
> 
> Best regards
> 
> -- 
> Wolfgang Frisch <[email protected]>
> Security Engineer
> OpenPGP fingerprint: A2E6 B7D4 53E9 544F BC13  D26B D9B3 56BD 4D4A 2D15
> SUSE Software Solutions Germany GmbH, Frankenstraße 146, 90461 Nürnberg
> 



diff --git a/drivers/gpu/drm/display/drm_dp_helper.c b/drivers/gpu/drm/display/drm_dp_helper.c
index dc622c78db9d..ec53c545776f 100644
--- a/drivers/gpu/drm/display/drm_dp_helper.c
+++ b/drivers/gpu/drm/display/drm_dp_helper.c
@@ -724,7 +724,7 @@ ssize_t drm_dp_dpcd_read(struct drm_dp_aux *aux, unsigned int offset,
 	 * We just have to do it before any DPCD access and hope that the
 	 * monitor doesn't power down exactly after the throw away read.
 	 */
-	if (!aux->is_remote) {
+	if (0 && !aux->is_remote) {
 		ret = drm_dp_dpcd_probe(aux, DP_LANE0_1_STATUS);
 		if (ret < 0)
 			return ret;

Reply via email to