mirror of
https://github.com/fail0verflow/switch-coreboot.git
synced 2025-05-04 01:39:18 -04:00
rockchip: edp: split edp_enable() function
To avoid garbage display in firmware when warm reset device, we need to enable edp display in depthcharge, so split edp_enable() in coreboot, and do enable step in depthcharge. CQ-DEPEND=CL:402071 BUG=chrome-os-partner:58675 BRANCH=none TEST=Boot from kevin, and display work Change-Id: Ibbc283a5892b98f4922f02fd67465fe2e1d01b71 Signed-off-by: Lin Huang <hl@rock-chips.com> Reviewed-on: https://chromium-review.googlesource.com/402095 Reviewed-by: Julius Werner <jwerner@chromium.org>
This commit is contained in:
parent
b3b6675420
commit
38b0d18c3f
4 changed files with 18 additions and 7 deletions
|
@ -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;
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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();
|
||||
|
|
Loading…
Add table
Reference in a new issue