Patch "drm/amd/display: Change the delay time before enabling FEC" has been added to the 5.4-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    drm/amd/display: Change the delay time before enabling FEC

to the 5.4-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-amd-display-change-the-delay-time-before-enablin.patch
and it can be found in the queue-5.4 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit 6e83ba3ad217cf16d6d10315a67915fcbc9751d1
Author: Leo (Hanghong) Ma <hanghong.ma@xxxxxxx>
Date:   Thu Nov 7 16:30:04 2019 -0500

    drm/amd/display: Change the delay time before enabling FEC
    
    [ Upstream commit 28fa24ad14e8f7d23c62283eaf9c79b4fd165c16 ]
    
    [why]
    DP spec requires 1000 symbols delay between the end of link training
    and enabling FEC in the stream. Currently we are using 1 miliseconds
    delay which is not accurate.
    
    [how]
    One lane RBR should have the maximum time for transmitting 1000 LL
    codes which is 6.173 us. So using 7 microseconds delay instead of
    1 miliseconds.
    
    Signed-off-by: Leo (Hanghong) Ma <hanghong.ma@xxxxxxx>
    Reviewed-by: Harry Wentland <Harry.Wentland@xxxxxxx>
    Reviewed-by: Nikola Cornij <Nikola.Cornij@xxxxxxx>
    Acked-by: Leo Li <sunpeng.li@xxxxxxx>
    Signed-off-by: Alex Deucher <alexander.deucher@xxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/drivers/gpu/drm/amd/display/dc/core/dc_link_dp.c b/drivers/gpu/drm/amd/display/dc/core/dc_link_dp.c
index 5a583707d198..0ab890c927ec 100644
--- a/drivers/gpu/drm/amd/display/dc/core/dc_link_dp.c
+++ b/drivers/gpu/drm/amd/display/dc/core/dc_link_dp.c
@@ -3492,7 +3492,14 @@ void dp_set_fec_enable(struct dc_link *link, bool enable)
 	if (link_enc->funcs->fec_set_enable &&
 			link->dpcd_caps.fec_cap.bits.FEC_CAPABLE) {
 		if (link->fec_state == dc_link_fec_ready && enable) {
-			msleep(1);
+			/* Accord to DP spec, FEC enable sequence can first
+			 * be transmitted anytime after 1000 LL codes have
+			 * been transmitted on the link after link training
+			 * completion. Using 1 lane RBR should have the maximum
+			 * time for transmitting 1000 LL codes which is 6.173 us.
+			 * So use 7 microseconds delay instead.
+			 */
+			udelay(7);
 			link_enc->funcs->fec_set_enable(link_enc, true);
 			link->fec_state = dc_link_fec_enabled;
 		} else if (link->fec_state == dc_link_fec_enabled && !enable) {



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux