From 152e675fd952bbb0e7d786fbaa7711b8d0d454f2 Mon Sep 17 00:00:00 2001 From: Lin Huang Date: Thu, 20 Oct 2016 14:22:11 -0700 Subject: rockchip/rk3399: display: Do not allocate framebuffer in coreboot framebuffer address is dynamically chosen by libpayload now, so there's no need to configure it in coreboot. CQ-DEPEND=CL:401402 BUG=chrome-os-partner:58675 BRANCH=none TEST=Boot from kevin, dev screen is visible Change-Id: I9f1e581d5c63b3579b26be22ce5c8d1e71679f6f Signed-off-by: Patrick Georgi Original-Commit-Id: b3b6675420592c30e1e0abc8f8e9dd6ed5abd04c Original-Change-Id: I7e3162f24a4dc426fe4e10d74865cf0042c80db5 Original-Signed-off-by: Lin Huang Original-Reviewed-on: https://chromium-review.googlesource.com/401401 Original-Commit-Ready: Julius Werner Original-Reviewed-by: Julius Werner Reviewed-on: https://review.coreboot.org/17109 Tested-by: build bot (Jenkins) Reviewed-by: Martin Roth --- src/soc/rockchip/common/include/soc/vop.h | 3 ++- src/soc/rockchip/common/vop.c | 21 +++++++++++++-------- 2 files changed, 15 insertions(+), 9 deletions(-) (limited to 'src/soc/rockchip/common') diff --git a/src/soc/rockchip/common/include/soc/vop.h b/src/soc/rockchip/common/include/soc/vop.h index f5ce431faf..98ad08255a 100644 --- a/src/soc/rockchip/common/include/soc/vop.h +++ b/src/soc/rockchip/common/include/soc/vop.h @@ -376,5 +376,6 @@ enum vop_modes { #define V_VASP(x) (((x)&0x1fff)<<16) void rkvop_mode_set(u32 vop_id, const struct edid *edid, u32 mode); -void rkvop_enable(u32 vop_id, u32 fbbase, const struct edid *edid); +void rkvop_prepare(u32 vop_id, const struct edid *edid); +void rkvop_enable(u32 vop_id, u32 fbbase); #endif diff --git a/src/soc/rockchip/common/vop.c b/src/soc/rockchip/common/vop.c index 668bee0153..629072e22e 100644 --- a/src/soc/rockchip/common/vop.c +++ b/src/soc/rockchip/common/vop.c @@ -30,7 +30,19 @@ static struct rockchip_vop_regs * const vop_regs[] = { (struct rockchip_vop_regs *)VOP_LIT_BASE }; -void rkvop_enable(u32 vop_id, u32 fbbase, const struct edid *edid) +void rkvop_enable(u32 vop_id, u32 fbbase) +{ + struct rockchip_vop_regs *preg = vop_regs[vop_id]; + + write32(&preg->win0_yrgb_mst, fbbase); + + /* On RK3288, the reg_cfg_done[1:31] is reserved and read-only, + * but it's fine to write to it + */ + write32(&preg->reg_cfg_done, 0xffff); /* enable reg config */ +} + +void rkvop_prepare(u32 vop_id, const struct edid *edid) { u32 lb_mode; u32 rgb_mode; @@ -85,13 +97,6 @@ void rkvop_enable(u32 vop_id, u32 fbbase, const struct edid *edid) M_WIN0_LB_MODE | M_WIN0_DATA_FMT | M_WIN0_EN, V_WIN0_LB_MODE(lb_mode) | V_WIN0_DATA_FMT(rgb_mode) | V_WIN0_EN(1)); - - write32(&preg->win0_yrgb_mst, fbbase); - - /* On RK3288, the reg_cfg_done[1:31] is reserved and read-only, - * but it's fine to write to it - */ - write32(&preg->reg_cfg_done, 0xffff); /* enable reg config */ } void rkvop_mode_set(u32 vop_id, const struct edid *edid, u32 mode) -- cgit v1.2.3