summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/soc/rockchip/common/edp.c15
-rw-r--r--src/soc/rockchip/common/include/soc/edp.h1
-rw-r--r--src/soc/rockchip/rk3288/display.c4
-rw-r--r--src/soc/rockchip/rk3399/display.c5
4 files changed, 18 insertions, 7 deletions
diff --git a/src/soc/rockchip/common/edp.c b/src/soc/rockchip/common/edp.c
index 90bc6e7a33..5723ccf660 100644
--- a/src/soc/rockchip/common/edp.c
+++ b/src/soc/rockchip/common/edp.c
@@ -921,10 +921,7 @@ static int rk_edp_config_video(struct rk_edp *edp)
/* Disable video mute */
clrbits_le32(&edp->regs->video_ctl_1, VIDEO_MUTE);
- /* Enable video at next frame */
- setbits_le32(&edp->regs->video_ctl_1, VIDEO_EN);
-
- return rk_edp_is_video_stream_on(edp);
+ return 0;
}
static void rockchip_edp_force_hpd(struct rk_edp *edp)
@@ -985,7 +982,7 @@ int rk_edp_get_edid(struct edid *edid)
return retval;
}
-int rk_edp_enable(void)
+int rk_edp_prepare(void)
{
int ret = 0;
@@ -1002,6 +999,14 @@ int rk_edp_enable(void)
return ret;
}
+int rk_edp_enable(void)
+{
+ /* Enable video at next frame */
+ setbits_le32(&rk_edp.regs->video_ctl_1, VIDEO_EN);
+
+ return rk_edp_is_video_stream_on(&rk_edp);
+}
+
void rk_edp_init(void)
{
rk_edp.regs = (struct rk_edp_regs *)EDP_BASE;
diff --git a/src/soc/rockchip/common/include/soc/edp.h b/src/soc/rockchip/common/include/soc/edp.h
index 1721fc0226..a9ebbc5089 100644
--- a/src/soc/rockchip/common/include/soc/edp.h
+++ b/src/soc/rockchip/common/include/soc/edp.h
@@ -651,6 +651,7 @@ struct rk_edp {
u8 train_set[4];
};
+int rk_edp_prepare(void);
int rk_edp_enable(void);
void rk_edp_init(void);
int rk_edp_get_edid(struct edid *edid);
diff --git a/src/soc/rockchip/rk3288/display.c b/src/soc/rockchip/rk3288/display.c
index 30c8ca1d06..2298d8b6e3 100644
--- a/src/soc/rockchip/rk3288/display.c
+++ b/src/soc/rockchip/rk3288/display.c
@@ -128,6 +128,10 @@ void rk_display_init(device_t dev, u32 lcdbase,
case VOP_MODE_EDP:
default:
+ if (rk_edp_prepare()) {
+ printk(BIOS_WARNING, "edp prepare err\n");
+ return;
+ }
if (rk_edp_enable()) {
printk(BIOS_WARNING, "edp enable err\n");
return;
diff --git a/src/soc/rockchip/rk3399/display.c b/src/soc/rockchip/rk3399/display.c
index 372e115cf4..5b884789bb 100644
--- a/src/soc/rockchip/rk3399/display.c
+++ b/src/soc/rockchip/rk3399/display.c
@@ -99,8 +99,9 @@ void rk_display_init(device_t dev)
return;
case VOP_MODE_EDP:
default:
- if (rk_edp_enable()) {
- printk(BIOS_WARNING, "edp enable error\n");
+ /* will enable edp in depthcharge */
+ if (rk_edp_prepare()) {
+ printk(BIOS_WARNING, "edp prepare error\n");
return;
}
mainboard_power_on_backlight();