diff options
Diffstat (limited to 'src/soc/rockchip')
-rw-r--r-- | src/soc/rockchip/common/edp.c | 15 | ||||
-rw-r--r-- | src/soc/rockchip/common/include/soc/edp.h | 1 | ||||
-rw-r--r-- | src/soc/rockchip/rk3288/display.c | 4 | ||||
-rw-r--r-- | src/soc/rockchip/rk3399/display.c | 5 |
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(); |