mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-07 19:30:30 +09:00
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:
@@ -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);
|
||||
|
||||
|
||||
@@ -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;
|
||||
};
|
||||
|
||||
@@ -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[] = {
|
||||
|
||||
Reference in New Issue
Block a user