mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-07 03:15:31 +09:00
drm/rockchip: vop2: add config ports background color
before this commit, the bt1120/bt656/hdmi yuv output will display green screen at power on state. Change-Id: I21ee96f0883e0edc5f3a4cec1bf7bac25d15c775 Signed-off-by: Sandy Huang <hjc@rock-chips.com>
This commit is contained in:
@@ -505,6 +505,7 @@ struct vop2_win_regs {
|
||||
struct vop2_video_port_regs {
|
||||
struct vop_reg cfg_done;
|
||||
struct vop_reg overlay_mode;
|
||||
struct vop_reg dsp_background;
|
||||
struct vop_reg port_mux;
|
||||
struct vop_reg out_mode;
|
||||
struct vop_reg standby;
|
||||
|
||||
@@ -2857,6 +2857,12 @@ static void vop2_crtc_atomic_enable(struct drm_crtc *crtc, struct drm_crtc_state
|
||||
|
||||
clk_set_rate(vp->dclk, adjusted_mode->crtc_clock * 1000);
|
||||
|
||||
if (is_yuv_output(vcstate->bus_format))
|
||||
val = 0x20010200;
|
||||
else
|
||||
val = 0;
|
||||
VOP_MODULE_SET(vop2, vp, dsp_background, val);
|
||||
|
||||
vop2_cfg_done(crtc);
|
||||
|
||||
drm_crtc_vblank_on(crtc);
|
||||
|
||||
@@ -350,6 +350,7 @@ static const struct vop_intr rk3568_vp2_intr = {
|
||||
static const struct vop2_video_port_regs rk3568_vop_vp0_regs = {
|
||||
.cfg_done = VOP_REG(RK3568_REG_CFG_DONE, 0x1, 0),
|
||||
.overlay_mode = VOP_REG(RK3568_OVL_CTRL, 0x1, 0),
|
||||
.dsp_background = VOP_REG(RK3568_VP0_DSP_BG, 0x3fffffff, 0),
|
||||
.port_mux = VOP_REG(RK3568_OVL_PORT_SEL, 0xf, 0),
|
||||
.out_mode = VOP_REG(RK3568_VP0_DSP_CTRL, 0xf, 0),
|
||||
.standby = VOP_REG(RK3568_VP0_DSP_CTRL, 0x1, 31),
|
||||
@@ -407,6 +408,7 @@ static const struct vop2_video_port_regs rk3568_vop_vp0_regs = {
|
||||
static const struct vop2_video_port_regs rk3568_vop_vp1_regs = {
|
||||
.cfg_done = VOP_REG(RK3568_REG_CFG_DONE, 0x1, 1),
|
||||
.overlay_mode = VOP_REG(RK3568_OVL_CTRL, 0x1, 1),
|
||||
.dsp_background = VOP_REG(RK3568_VP1_DSP_BG, 0x3fffffff, 0),
|
||||
.port_mux = VOP_REG(RK3568_OVL_PORT_SEL, 0xf, 4),
|
||||
.out_mode = VOP_REG(RK3568_VP1_DSP_CTRL, 0xf, 0),
|
||||
.standby = VOP_REG(RK3568_VP1_DSP_CTRL, 0x1, 31),
|
||||
@@ -439,6 +441,7 @@ static const struct vop2_video_port_regs rk3568_vop_vp1_regs = {
|
||||
static const struct vop2_video_port_regs rk3568_vop_vp2_regs = {
|
||||
.cfg_done = VOP_REG(RK3568_REG_CFG_DONE, 0x1, 2),
|
||||
.overlay_mode = VOP_REG(RK3568_OVL_CTRL, 0x1, 2),
|
||||
.dsp_background = VOP_REG(RK3568_VP2_DSP_BG, 0x3fffffff, 0),
|
||||
.port_mux = VOP_REG(RK3568_OVL_PORT_SEL, 0xf, 8),
|
||||
.out_mode = VOP_REG(RK3568_VP2_DSP_CTRL, 0xf, 0),
|
||||
.standby = VOP_REG(RK3568_VP2_DSP_CTRL, 0x1, 31),
|
||||
|
||||
@@ -1077,6 +1077,7 @@
|
||||
#define RK3568_VP0_DSP_CTRL 0xC00
|
||||
#define RK3568_VP0_MIPI_CTRL 0xC04
|
||||
#define RK3568_VP0_COLOR_BAR_CTRL 0xC08
|
||||
#define RK3568_VP0_DSP_BG 0xC2C
|
||||
#define RK3568_VP0_PRE_SCAN_HTIMING 0xC30
|
||||
#define RK3568_VP0_POST_DSP_HACT_INFO 0xC34
|
||||
#define RK3568_VP0_POST_DSP_VACT_INFO 0xC38
|
||||
@@ -1093,6 +1094,7 @@
|
||||
#define RK3568_VP1_DSP_CTRL 0xD00
|
||||
#define RK3568_VP1_MIPI_CTRL 0xD04
|
||||
#define RK3568_VP1_COLOR_BAR_CTRL 0xD08
|
||||
#define RK3568_VP1_DSP_BG 0xD2C
|
||||
#define RK3568_VP1_PRE_SCAN_HTIMING 0xD30
|
||||
#define RK3568_VP1_POST_DSP_HACT_INFO 0xD34
|
||||
#define RK3568_VP1_POST_DSP_VACT_INFO 0xD38
|
||||
@@ -1111,6 +1113,7 @@
|
||||
#define RK3568_VP2_DSP_CTRL 0xE00
|
||||
#define RK3568_VP2_MIPI_CTRL 0xE04
|
||||
#define RK3568_VP2_COLOR_BAR_CTRL 0xE08
|
||||
#define RK3568_VP2_DSP_BG 0xE2C
|
||||
#define RK3568_VP2_PRE_SCAN_HTIMING 0xE30
|
||||
#define RK3568_VP2_POST_DSP_HACT_INFO 0xE34
|
||||
#define RK3568_VP2_POST_DSP_VACT_INFO 0xE38
|
||||
|
||||
Reference in New Issue
Block a user