Patch "drm: Add retries for lspcon mode detection" has been added to the 4.14-stable tree
Subsystems (3)
This is a note to let you know that I've just added the patch titled
drm: Add retries for lspcon mode detection
to the 4.14-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
drm-add-retries-for-lspcon-mode-detection.patch
and it can be found in the queue-4.14 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From foo@baz Wed Dec 20 18:17:52 CET 2017
From: Shashank Sharma <[email protected]>
Date: Thu, 12 Oct 2017 22:10:08 +0530
Subject: drm: Add retries for lspcon mode detection
From: Shashank Sharma <[email protected]>
[ Upstream commit f687e25a7a245952349f1f9f9cc238ac5a3be258 ]
Quoted 1 line
Quoted 1 line
From the CI builds, its been observed that during a driver
reload/insert, dp dual mode read function sometimes fails to read from LSPCON device over i2c-over-aux channel.
This patch:
- adds some delay and few retries, allowing a scope for these devices to settle down and respond.
- changes one error log's level from ERROR->DEBUG as we want to call it an error only after all the retries are exhausted.
V2: Addressed review comments from Jani (for loop for retry)
V3: Addressed review comments from Imre (break on partial read too)
V3: Addressed review comments from Ville/Imre (Add the retries
exclusively for LSPCON, not for all dp_dual_mode devices)
V4: Added r-b from Imre, sending it to dri-devel (Jani)
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=102294
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=102295
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=102359
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=103186
--- drivers/gpu/drm/drm_dp_dual_mode_helper.c | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-)
drivers/gpu/drm/drm_dp_dual_mode_helper.c +13 -3
@@ -410,6 +410,7 @@ int drm_lspcon_get_mode(struct i2c_adapt {u8 data;int ret =0 ; +int retry;if (!mode) {DRM_ERROR ("NULL input\n" );
@@ -417,10 +418,19 @@ int drm_lspcon_get_mode(struct i2c_adapt }/* Read Status: i2c over aux */ - ret =drm_dp_dual_mode_read (adapter,DP_DUAL_MODE_LSPCON_CURRENT_MODE , - &data,sizeof (data)); +for (retry =0 ; retry <6 ; retry++) { +if (retry) +usleep_range (500 ,1000 ); + + ret =drm_dp_dual_mode_read (adapter, +DP_DUAL_MODE_LSPCON_CURRENT_MODE , + &data,sizeof (data)); +if (!ret) +break ; + } +if (ret <0 ) { -DRM_ERROR ("LSPCON read(0x80, 0x41) failed\n" ); +DRM_DEBUG_KMS ("LSPCON read(0x80, 0x41) failed\n" );return -EFAULT ; }
Patches currently in stable-queue which might be from [email protected] are
queue-4.14/drm-add-retries-for-lspcon-mode-detection.patch