<html>
<head>
<base href="https://bugs.freedesktop.org/">
</head>
<body>
<p>
<div>
<b><a class="bz_bug_link
bz_status_NEW "
title="NEW - drm:intel_dp_start_link_train [i915] *ERROR* failed to enable link training"
href="https://bugs.freedesktop.org/show_bug.cgi?id=109522#c22">Comment # 22</a>
on <a class="bz_bug_link
bz_status_NEW "
title="NEW - drm:intel_dp_start_link_train [i915] *ERROR* failed to enable link training"
href="https://bugs.freedesktop.org/show_bug.cgi?id=109522">bug 109522</a>
from <span class="vcard"><a class="email" href="mailto:howaboutsynergy@pm.me" title="howaboutsynergy@pm.me">howaboutsynergy@pm.me</a>
</span></b>
<pre>I guess it just needs a little more time:
[ 125.566788] i2c i2c-2: NAK from device addr 0x50 msg #0
[ 125.570588] i2c i2c-1: NAK from device addr 0x50 msg #0
[ 125.574389] i2c i2c-3: NAK from device addr 0x50 msg #0
[ 130.895667] user[1498]: '/home/user/bin/monoff'(on /dev/pts/1) is executing:
'sleep 1'
[ 131.904024] user[1506]: '/home/user/bin/monoff'(on /dev/pts/1) is executing:
'xset dpms force suspend'
[ 132.011136] [drm:drm_dp_dpcd_access [drm_kms_helper]] *ERROR* Success(1)
after 0 retries
[ 132.019006] user[1509]: '/home/user/bin/monoff'(on /dev/pts/1) is executing:
'sleep 1'
[ 133.027453] user[1517]: '/home/user/bin/monoff'(on /dev/pts/1) is executing:
'xset dpms force off'
[ 133.138670] user[1520]: '/home/user/bin/monoff'(on /dev/pts/1) is executing:
'sleep 1'
[ 134.147175] user[1528]: '/home/user/bin/monoff'(on /dev/pts/1) is executing:
'xset dpms force standby'
[ 134.258545] user[1531]: '/home/user/bin/monoff'(on /dev/pts/1) is executing:
'setterm --blank force'
[ 138.779003] snd_hda_intel 0000:00:1f.3: PME# enabled
[ 138.790413] snd_hda_intel 0000:00:1f.3: power state changed by ACPI to D3hot
[ 151.416744] [drm:drm_dp_dpcd_access [drm_kms_helper]] *ERROR* Success(1)
after 887 retries
[ 151.417491] [drm:drm_dp_dpcd_access [drm_kms_helper]] *ERROR* Success(2)
after 0 retries
[ 151.417637] [drm:drm_dp_dpcd_access [drm_kms_helper]] *ERROR* Success(2)
after 0 retries
[ 151.417806] [drm:drm_dp_dpcd_access [drm_kms_helper]] *ERROR* Success(5)
after 0 retries
[ 151.417822] [drm:intel_dp_set_link_train [i915]] *ERROR* ret=5 len=5
[ 151.418056] [drm:drm_dp_dpcd_access [drm_kms_helper]] *ERROR* Success(1)
after 0 retries
[ 151.418230] [drm:drm_dp_dpcd_access [drm_kms_helper]] *ERROR* Success(6)
after 0 retries
[ 151.418389] [drm:drm_dp_dpcd_access [drm_kms_helper]] *ERROR* Success(4)
after 0 retries
[ 151.418623] [drm:drm_dp_dpcd_access [drm_kms_helper]] *ERROR* Success(1)
after 0 retries
[ 151.418797] [drm:drm_dp_dpcd_access [drm_kms_helper]] *ERROR* Success(6)
after 0 retries
[ 151.418956] [drm:drm_dp_dpcd_access [drm_kms_helper]] *ERROR* Success(4)
after 0 retries
[ 151.419189] [drm:drm_dp_dpcd_access [drm_kms_helper]] *ERROR* Success(1)
after 0 retries
[ 151.419363] [drm:drm_dp_dpcd_access [drm_kms_helper]] *ERROR* Success(6)
after 0 retries
[ 151.419531] [drm:drm_dp_dpcd_access [drm_kms_helper]] *ERROR* Success(5)
after 0 retries
[ 151.419547] [drm:intel_dp_set_link_train [i915]] *ERROR* ret=5 len=5
[ 151.420080] [drm:drm_dp_dpcd_access [drm_kms_helper]] *ERROR* Success(1)
after 0 retries
[ 151.420254] [drm:drm_dp_dpcd_access [drm_kms_helper]] *ERROR* Success(6)
after 0 retries
[ 151.420413] [drm:drm_dp_dpcd_access [drm_kms_helper]] *ERROR* Success(4)
after 0 retries
[ 151.420948] [drm:drm_dp_dpcd_access [drm_kms_helper]] *ERROR* Success(1)
after 0 retries
[ 151.421121] [drm:drm_dp_dpcd_access [drm_kms_helper]] *ERROR* Success(6)
after 0 retries
[ 151.421279] [drm:drm_dp_dpcd_access [drm_kms_helper]] *ERROR* Success(4)
after 0 retries
[ 151.421814] [drm:drm_dp_dpcd_access [drm_kms_helper]] *ERROR* Success(1)
after 0 retries
[ 151.421987] [drm:drm_dp_dpcd_access [drm_kms_helper]] *ERROR* Success(6)
after 0 retries
[ 151.422268] [drm:drm_dp_dpcd_access [drm_kms_helper]] *ERROR* Success(1)
after 0 retries
[ 151.422282] [drm:intel_dp_set_link_train [i915]] *ERROR* ret=1 len=1
[ 151.422634] snd_hda_intel 0000:00:1f.3: power state changed by ACPI to D0
[ 151.434403] snd_hda_intel 0000:00:1f.3: PME# disabled
[ 151.447335] snd_hda_intel 0000:00:1f.3: PME# enabled
[ 151.459283] i2c i2c-2: NAK from device addr 0x50 msg #0
[ 151.460351] snd_hda_intel 0000:00:1f.3: power state changed by ACPI to D3hot
[ 151.488549] i2c i2c-2: NAK from device addr 0x50 msg #0
[ 151.492329] i2c i2c-1: NAK from device addr 0x50 msg #0
[ 151.496143] i2c i2c-3: NAK from device addr 0x50 msg #0
[ 151.500188] i2c i2c-2: NAK from device addr 0x50 msg #0
[ 151.504014] i2c i2c-1: NAK from device addr 0x50 msg #0
[ 151.507808] i2c i2c-3: NAK from device addr 0x50 msg #0
[ 151.620812] [drm:drm_dp_dpcd_access [drm_kms_helper]] *ERROR* Success(1)
after 0 retries
[ 151.621097] [drm:drm_dp_dpcd_access [drm_kms_helper]] *ERROR* Success(15)
after 0 retries
[ 151.621265] [drm:drm_dp_dpcd_access [drm_kms_helper]] *ERROR* Success(1)
after 0 retries
[ 151.621468] [drm:drm_dp_dpcd_access [drm_kms_helper]] *ERROR* Success(1)
after 0 retries
[ 151.621632] [drm:drm_dp_dpcd_access [drm_kms_helper]] *ERROR* Success(1)
after 0 retries
[ 151.621873] [drm:drm_dp_dpcd_access [drm_kms_helper]] *ERROR* Success(12)
after 0 retries
[ 151.622022] [drm:drm_dp_dpcd_access [drm_kms_helper]] *ERROR* Success(1)
after 0 retries
[ 151.622172] [drm:drm_dp_dpcd_access [drm_kms_helper]] *ERROR* Success(1)
after 0 retries
[ 151.628561] [drm:drm_dp_dpcd_access [drm_kms_helper]] *ERROR* Success(1)
after 0 retries
[ 151.628726] [drm:drm_dp_dpcd_access [drm_kms_helper]] *ERROR* Success(1)
after 0 retries
[ 151.628901] [drm:drm_dp_dpcd_access [drm_kms_helper]] *ERROR* Success(1)
after 0 retries
[ 151.629110] [drm:drm_dp_dpcd_access [drm_kms_helper]] *ERROR* Success(6)
after 0 retries
[ 151.632209] i2c i2c-2: NAK from device addr 0x50 msg #0
[ 151.638502] [drm:drm_dp_dpcd_access [drm_kms_helper]] *ERROR* Success(1)
after 0 retries
[ 151.638779] [drm:drm_dp_dpcd_access [drm_kms_helper]] *ERROR* Success(15)
after 0 retries
[ 151.638933] [drm:drm_dp_dpcd_access [drm_kms_helper]] *ERROR* Success(1)
after 0 retries
[ 151.639086] [drm:drm_dp_dpcd_access [drm_kms_helper]] *ERROR* Success(1)
after 0 retries
[ 151.639242] [drm:drm_dp_dpcd_access [drm_kms_helper]] *ERROR* Success(1)
after 0 retries
[ 151.639497] [drm:drm_dp_dpcd_access [drm_kms_helper]] *ERROR* Success(12)
after 0 retries
[ 151.639664] [drm:drm_dp_dpcd_access [drm_kms_helper]] *ERROR* Success(1)
after 0 retries
[ 151.639826] [drm:drm_dp_dpcd_access [drm_kms_helper]] *ERROR* Success(1)
after 0 retries
[ 151.639988] [drm:drm_dp_dpcd_access [drm_kms_helper]] *ERROR* Success(1)
after 0 retries
[ 151.640183] [drm:drm_dp_dpcd_access [drm_kms_helper]] *ERROR* Success(6)
after 0 retries
[ 151.646707] [drm:drm_dp_dpcd_access [drm_kms_helper]] *ERROR* Success(1)
after 0 retries
[ 151.646863] [drm:drm_dp_dpcd_access [drm_kms_helper]] *ERROR* Success(1)
after 0 retries
[ 151.650080] i2c i2c-2: NAK from device addr 0x50 msg #0
[ 151.653663] i2c i2c-1: NAK from device addr 0x50 msg #0
[ 151.657264] i2c i2c-3: NAK from device addr 0x50 msg #0
[ 151.658088] [drm:drm_dp_dpcd_access [drm_kms_helper]] *ERROR* Success(1)
after 0 retries
[ 151.658377] [drm:drm_dp_dpcd_access [drm_kms_helper]] *ERROR* Success(15)
after 0 retries
[ 151.658542] [drm:drm_dp_dpcd_access [drm_kms_helper]] *ERROR* Success(1)
after 0 retries
[ 151.658704] [drm:drm_dp_dpcd_access [drm_kms_helper]] *ERROR* Success(1)
after 0 retries
[ 151.658860] [drm:drm_dp_dpcd_access [drm_kms_helper]] *ERROR* Success(1)
after 0 retries
[ 151.659104] [drm:drm_dp_dpcd_access [drm_kms_helper]] *ERROR* Success(12)
after 0 retries
[ 151.659258] [drm:drm_dp_dpcd_access [drm_kms_helper]] *ERROR* Success(1)
after 0 retries
[ 151.659439] [drm:drm_dp_dpcd_access [drm_kms_helper]] *ERROR* Success(1)
after 0 retries
[ 151.659626] [drm:drm_dp_dpcd_access [drm_kms_helper]] *ERROR* Success(1)
after 0 retries
[ 151.659830] [drm:drm_dp_dpcd_access [drm_kms_helper]] *ERROR* Success(6)
after 0 retries
[ 151.666278] [drm:drm_dp_dpcd_access [drm_kms_helper]] *ERROR* Success(1)
after 0 retries
[ 151.666455] [drm:drm_dp_dpcd_access [drm_kms_helper]] *ERROR* Success(1)
after 0 retries
[ 151.670324] i2c i2c-2: NAK from device addr 0x50 msg #0
[ 151.673941] i2c i2c-1: NAK from device addr 0x50 msg #0
[ 151.677536] i2c i2c-3: NAK from device addr 0x50 msg #0
[ 186.356944] gpg-agent[1081]: handler 0x7b7cdd4c7700 for fd 10 started
[ 186.406135] gpg-agent[1081]: handler 0x7b7cdd4c7700 for fd 10 terminated
[ 235.049835] user[2041]: okiedo
887 retries instead of just 32
however, if I use 3200 retries, there's a long(21sec?) blank screen at system
startup due to something else timing out(also seen in attached dmesg in Comment
20):
[ 11.444603] e1000e: net0 NIC Link is Up 1000 Mbps Full Duplex, Flow Control:
Rx/Tx
[ 32.961810] [drm:drm_dp_dpcd_access [drm_kms_helper]] *ERROR* Too many
retries, giving up. First error: -110
[ 32.962048] [drm:drm_dp_dpcd_access [drm_kms_helper]] *ERROR* Success(-110)
after 3200 retries
[ 32.962268] [drm] failed to retrieve link info, disabling eDP
[ 32.965708] device: 'i915': device_add
[ 32.965904] bus: 'event_source': add device i915
[ 32.966060] PM: Adding info for event_source:i915
the "patch" I used was:
diff --git a/drivers/gpu/drm/i915/intel_dp_link_training.c
b/drivers/gpu/drm/i915/intel_dp_link_training.c
index b59c87daa4f7..e69b2198af89 100644
--- a/drivers/gpu/drm/i915/intel_dp_link_training.c
+++ b/drivers/gpu/drm/i915/intel_dp_link_training.c
@@ -87,6 +87,7 @@ intel_dp_set_link_train(struct intel_dp *intel_dp,
ret = drm_dp_dpcd_write(&intel_dp->aux, DP_TRAINING_PATTERN_SET,
buf, len);
+ DRM_ERROR("ret=%d len=%d\n", ret, len);
return ret == len;
}
diff --git a/drivers/gpu/drm/drm_dp_helper.c b/drivers/gpu/drm/drm_dp_helper.c
index 54a6414c5d96..a6baf92dba8f 100644
--- a/drivers/gpu/drm/drm_dp_helper.c
+++ b/drivers/gpu/drm/drm_dp_helper.c
@@ -234,7 +234,7 @@ static int drm_dp_dpcd_access(struct drm_dp_aux *aux, u8
request,
* aux i2c transactions but real world devices this wasn't
* sufficient, bump to 32 which makes Dell 4k monitors happier.
*/
- for (retry = 0; retry < 32; retry++) {
+ for (retry = 0; retry < 3200; retry++) {
if (ret != 0 && ret != -ETIMEDOUT) {
usleep_range(AUX_RETRY_INTERVAL,
AUX_RETRY_INTERVAL + 100);
@@ -262,10 +262,11 @@ static int drm_dp_dpcd_access(struct drm_dp_aux *aux, u8
request,
err = ret;
}
- DRM_DEBUG_KMS("Too many retries, giving up. First error: %d\n", err);
+ DRM_ERROR("Too many retries, giving up. First error: %d\n", err);
ret = err;
unlock:
+ DRM_ERROR("Success(%d) after %u retries\n", ret, retry);
mutex_unlock(&aux->hw_mutex);
return ret;
}</pre>
</div>
</p>
<hr>
<span>You are receiving this mail because:</span>
<ul>
<li>You are on the CC list for the bug.</li>
<li>You are the QA Contact for the bug.</li>
<li>You are the assignee for the bug.</li>
</ul>
</body>
</html>