[Bug 109522] drm:intel_dp_start_link_train [i915] *ERROR* failed to enable link training

bugzilla-daemon at freedesktop.org bugzilla-daemon at freedesktop.org
Fri Jun 21 04:26:43 UTC 2019


https://bugs.freedesktop.org/show_bug.cgi?id=109522

--- Comment #22 from howaboutsynergy at pm.me ---
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;
 }

-- 
You are receiving this mail because:
You are on the CC list for the bug.
You are the QA Contact for the bug.
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/intel-gfx-bugs/attachments/20190621/18ae0770/attachment-0001.html>


More information about the intel-gfx-bugs mailing list