drm/rockchip: vop: add bt656 support for rv1106

Signed-off-by: Damon Ding <damon.ding@rock-chips.com>
Change-Id: I2b60d18fe44cccdd6edcc542d3ae8865ca96e824
This commit is contained in:
Damon Ding
2022-03-09 15:27:39 +08:00
committed by Tao Huang
parent 04b494e0ca
commit a50f495d0c
3 changed files with 12 additions and 3 deletions

View File

@@ -3044,8 +3044,10 @@ static void vop_update_csc(struct drm_crtc *crtc)
struct vop *vop = to_vop(crtc);
u32 val;
if (s->output_mode == ROCKCHIP_OUT_MODE_AAAA &&
!(vop->data->feature & VOP_FEATURE_OUTPUT_10BIT))
if ((s->output_mode == ROCKCHIP_OUT_MODE_AAAA &&
!(vop->data->feature & VOP_FEATURE_OUTPUT_10BIT)) ||
(VOP_MAJOR(vop->version) == 2 && VOP_MINOR(vop->version) >= 12 &&
s->output_if & VOP_OUTPUT_IF_BT656))
s->output_mode = ROCKCHIP_OUT_MODE_P888;
if (is_uv_swap(s->bus_format, s->output_mode))
@@ -3214,6 +3216,8 @@ static void vop_crtc_atomic_enable(struct drm_crtc *crtc,
yc_swap = is_yc_swap(s->bus_format);
VOP_CTRL_SET(vop, bt1120_yc_swap, yc_swap);
VOP_CTRL_SET(vop, yuv_clip, 1);
} else if (s->output_if & VOP_OUTPUT_IF_BT656) {
VOP_CTRL_SET(vop, bt656_en, 1);
}
break;
case DRM_MODE_CONNECTOR_eDP:
@@ -3300,7 +3304,8 @@ static void vop_crtc_atomic_enable(struct drm_crtc *crtc,
VOP_CTRL_SET(vop, vtotal_pw, vtotal << 16 | vsync_len);
VOP_CTRL_SET(vop, core_dclk_div,
!!(adjusted_mode->flags & DRM_MODE_FLAG_DBLCLK));
!!(adjusted_mode->flags & DRM_MODE_FLAG_DBLCLK) ||
s->output_if & VOP_OUTPUT_IF_BT656);
VOP_CTRL_SET(vop, win_csc_mode_sel, 1);

View File

@@ -345,6 +345,9 @@ struct vop_ctrl {
struct vop_reg bt1120_yc_swap;
struct vop_reg bt1120_en;
/* bt656 */
struct vop_reg bt656_en;
struct vop_reg reg_done_frm;
struct vop_reg cfg_done;
};

View File

@@ -1904,6 +1904,7 @@ static const struct vop_ctrl rv1106_ctrl_data = {
0xffffffff, 0),
.bt1120_yc_swap = VOP_REG(RK3366_LIT_DSP_CTRL0, 0x1, 30),
.bt1120_en = VOP_REG(RK3366_LIT_DSP_CTRL0, 0x1, 31),
.bt656_en = VOP_REG(RK3366_LIT_DSP_CTRL0, 0x1, 6),
};
static const struct vop_win_data rv1106_vop_win_data[] = {