drm/rockchip: vop: enable rb_swap and rg_swap in YUV444 bus_format for rk3576 vopl

The RGB888 bus_format can be converted to VYU444 if r2y
enabled, so it is needed to enable rb_swap and rg_swap
for YUV444.

Change-Id: Ib35398137dcd3c849590ba5243d879c5ef11ccee
Signed-off-by: Damon Ding <damon.ding@rock-chips.com>
This commit is contained in:
Damon Ding
2024-02-20 16:52:29 +08:00
committed by Tao Huang
parent 0a6460072f
commit 3965fbfb46
2 changed files with 9 additions and 1 deletions

View File

@@ -3408,6 +3408,14 @@ static void vop_update_csc(struct drm_crtc *crtc)
else
VOP_CTRL_SET(vop, dsp_data_swap, 0);
/*
* For RK3576 vopl, rg_swap and rb_swap need to be enabled in
* YUV444 bus_format.
*/
if ((VOP_MAJOR(vop->version) == 2 && VOP_MINOR(vop->version) == 0xd) &&
s->bus_format == MEDIA_BUS_FMT_YUV8_1X24)
VOP_CTRL_SET(vop, dsp_data_swap, DSP_RG_SWAP | DSP_RB_SWAP);
VOP_CTRL_SET(vop, out_mode, s->output_mode);
vop_dither_setup(crtc);

View File

@@ -2016,7 +2016,7 @@ static const struct vop_ctrl rk3576_lit_ctrl_data = {
.dither_down_en = VOP_REG(EBC_VOP_DSP_CTRL1, 0x1, 5),
.dither_down_mode = VOP_REG(EBC_VOP_DSP_CTRL1, 0x1, 6),
.dither_down_sel = VOP_REG(EBC_VOP_DSP_CTRL1, 0x1, 7),
.dsp_data_swap = VOP_REG(EBC_VOP_DSP_CTRL1, 0x1f, 9),
.dsp_data_swap = VOP_REG(EBC_VOP_DSP_CTRL1, 0x1f, 8),
.dsp_bg_swap = VOP_REG(EBC_VOP_DSP_CTRL1, 0x1, 8),
.dsp_rb_swap = VOP_REG(EBC_VOP_DSP_CTRL1, 0x1, 9),
.dsp_rg_swap = VOP_REG(EBC_VOP_DSP_CTRL1, 0x1, 10),