aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/layerscape/patches-5.4/805-display-0053-LF-323-2-drm-bridge-cdns-enhance-link-training-stabi.patch
blob: dec3d78b05003fadc74786dd0008d244c42a5bf1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
From 06b758a32bb5ca164cff60f20173ecd71508c5ae Mon Sep 17 00:00:00 2001
From: Sandor Yu <Sandor.yu@nxp.com>
Date: Mon, 9 Dec 2019 17:58:29 +0800
Subject: [PATCH] LF-323-2: drm/bridge/cdns: enhance link training stability

Remove drm_dp_link_power_down from bridge_disable function,
in case some DP sinks aren't follow DP 1.1 specification
and can not exit the power saving state within 1 ms.
Add drm_dp_link_power_up to bridge_enable function,
make sure DP sinks are power up before link training.

Signed-off-by: Sandor Yu <Sandor.yu@nxp.com>
Reviewed-by: Robby Cai <robby.cai@nxp.com>
---
 drivers/gpu/drm/bridge/cadence/cdns-dp-core.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

--- a/drivers/gpu/drm/bridge/cadence/cdns-dp-core.c
+++ b/drivers/gpu/drm/bridge/cadence/cdns-dp-core.c
@@ -329,6 +329,8 @@ static void cdn_hdp_bridge_enable(struct
 	struct cdns_mhdp_device *mhdp = bridge->driver_private;
 	int ret;
 
+	drm_dp_link_power_up(&mhdp->dp.aux, &mhdp->dp.link);
+
 	/* Link trainning */
 	ret = cdns_mhdp_train_link(mhdp);
 	if (ret) {
@@ -348,7 +350,6 @@ static void cdn_hdp_bridge_disable(struc
 	struct cdns_mhdp_device *mhdp = bridge->driver_private;
 
 	cdns_mhdp_set_video_status(mhdp, CONTROL_VIDEO_IDLE);
-	drm_dp_link_power_down(&mhdp->dp.aux, &mhdp->dp.link);
 }
 
 static const struct drm_bridge_funcs cdns_dp_bridge_funcs = {