Hello Nicolas,
At 2026-01-21 22:45:20, "Nicolas Frattaroli" <[email protected]> wrote: >For RK3576 to be able to output YUV422 signals, it first needs to be >able to pick the right output mode in the display controller to do so. > >The RK3576 hardware specifies different output formats depending on the >used display protocol. > >Adjust the written register value based on the SoC and connector, so >other users of vcstate->output_mode don't have to care about this. > >Signed-off-by: Nicolas Frattaroli <[email protected]> Reviewed-by: Andy Yan <[email protected]> >--- > drivers/gpu/drm/rockchip/rockchip_drm_vop2.c | 16 ++++++++++++++++ > 1 file changed, 16 insertions(+) > >diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c >b/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c >index 3dd7b7571487..d93c6779286e 100644 >--- a/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c >+++ b/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c >@@ -1706,6 +1706,22 @@ static void vop2_crtc_atomic_enable(struct drm_crtc >*crtc, > if (vcstate->output_mode == ROCKCHIP_OUT_MODE_AAAA && > !(vp_data->feature & VOP2_VP_FEATURE_OUTPUT_10BIT)) > out_mode = ROCKCHIP_OUT_MODE_P888; >+ else if (vcstate->output_mode == ROCKCHIP_OUT_MODE_YUV422 && >+ vop2->version == VOP_VERSION_RK3576) >+ switch (vcstate->output_type) { >+ case DRM_MODE_CONNECTOR_DisplayPort: >+ case DRM_MODE_CONNECTOR_eDP: >+ out_mode = ROCKCHIP_OUT_MODE_YUV422_RK3576_DP; >+ break; >+ case DRM_MODE_CONNECTOR_HDMIA: >+ out_mode = ROCKCHIP_OUT_MODE_YUV422_RK3576_HDMI; >+ break; >+ default: >+ drm_err(vop2->drm, "Unknown DRM_MODE_CONNECTOR %d\n", >+ vcstate->output_type); >+ vop2_unlock(vop2); >+ return; >+ } > else > out_mode = vcstate->output_mode; > > >-- >2.52.0 >
