aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/layerscape/patches-5.4/805-display-0053-LF-323-2-drm-bridge-cdns-enhance-link-training-stabi.patch
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/layerscape/patches-5.4/805-display-0053-LF-323-2-drm-bridge-cdns-enhance-link-training-stabi.patch')
-rw-r--r--target/linux/layerscape/patches-5.4/805-display-0053-LF-323-2-drm-bridge-cdns-enhance-link-training-stabi.patch36
1 files changed, 36 insertions, 0 deletions
diff --git a/target/linux/layerscape/patches-5.4/805-display-0053-LF-323-2-drm-bridge-cdns-enhance-link-training-stabi.patch b/target/linux/layerscape/patches-5.4/805-display-0053-LF-323-2-drm-bridge-cdns-enhance-link-training-stabi.patch
new file mode 100644
index 0000000000..dec3d78b05
--- /dev/null
+++ b/target/linux/layerscape/patches-5.4/805-display-0053-LF-323-2-drm-bridge-cdns-enhance-link-training-stabi.patch
@@ -0,0 +1,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 = {