Merge tag 'u-boot-atmel-fixes-2021.01-b' of https://gitlab.denx.de/u-boot/custodians...
[platform/kernel/u-boot.git] / drivers / video / rockchip / rk_edp.c
index 99b16cd..c55f7a4 100644 (file)
@@ -1,4 +1,4 @@
-// SPDX-License-Identifier: GPL-2.0+
+// SPDX-License-Identifier: GPL-2.0
 /*
  * Copyright (c) 2015 Google, Inc
  * Copyright 2014 Rockchip Inc.
@@ -9,6 +9,7 @@
 #include <display.h>
 #include <dm.h>
 #include <edid.h>
+#include <log.h>
 #include <malloc.h>
 #include <panel.h>
 #include <regmap.h>
@@ -20,6 +21,7 @@
 #include <asm/arch-rockchip/grf_rk3288.h>
 #include <asm/arch-rockchip/hardware.h>
 #include <dt-bindings/clock/rk3288-cru.h>
+#include <linux/delay.h>
 
 #define MAX_CR_LOOP 5
 #define MAX_EQ_LOOP 5
@@ -557,6 +559,12 @@ static int rk_edp_link_train_ce(struct rk_edp_priv *edp)
        channel_eq = 0;
        for (tries = 0; tries < 5; tries++) {
                rk_edp_set_link_training(edp, edp->train_set);
+               ret = rk_edp_dpcd_write(regs, DPCD_TRAINING_LANE0_SET,
+                                       edp->train_set,
+                                       edp->link_train.lane_count);
+               if (ret)
+                       return ret;
+
                udelay(400);
 
                if (rk_edp_dpcd_read_link_status(edp, status) < 0) {
@@ -1060,7 +1068,8 @@ static int rk_edp_probe(struct udevice *dev)
        rk_setreg(&priv->grf->soc_con12, 1 << 4);
 
        /* select epd signal from vop0 or vop1 */
-       rk_setreg(&priv->grf->soc_con6, (vop_id == 1) ? (1 << 5) : (1 << 5));
+       rk_clrsetreg(&priv->grf->soc_con6, (1 << 5),
+           (vop_id == 1) ? (1 << 5) : (0 << 5));
 
        rockchip_edp_wait_hpd(priv);