diff --git a/drivers/gpu/drm/rockchip/rockchip_rgb.c b/drivers/gpu/drm/rockchip/rockchip_rgb.c index 654de19f7cc1..99e1b05db1d8 100644 --- a/drivers/gpu/drm/rockchip/rockchip_rgb.c +++ b/drivers/gpu/drm/rockchip/rockchip_rgb.c @@ -34,6 +34,9 @@ #define RK1808_GRF_PD_VO_CON1 0x0444 #define RK1808_RGB_DATA_SYNC_BYPASS(v) HIWORD_UPDATE(v, 3, 3) +#define RV1106_VENC_GRF_VOP_IO_WRAPPER 0x1000c +#define RV1106_IO_BYPASS_SEL(v) HIWORD_UPDATE(v, 0, 0) + #define RV1126_GRF_IOFUNC_CON3 0x1026c #define RV1126_LCDC_IO_BYPASS(v) HIWORD_UPDATE(v, 0, 0) @@ -463,6 +466,16 @@ static const struct rockchip_rgb_funcs rv1126_rgb_funcs = { .enable = rv1126_rgb_enable, }; +static void rv1106_rgb_enable(struct rockchip_rgb *rgb) +{ + regmap_write(rgb->grf, RV1106_VENC_GRF_VOP_IO_WRAPPER, + RV1106_IO_BYPASS_SEL(rgb->data_sync_bypass)); +} + +static const struct rockchip_rgb_funcs rv1106_rgb_funcs = { + .enable = rv1106_rgb_enable, +}; + static const struct of_device_id rockchip_rgb_dt_ids[] = { { .compatible = "rockchip,px30-rgb", .data = &px30_rgb_funcs }, { .compatible = "rockchip,rk1808-rgb", .data = &rk1808_rgb_funcs }, @@ -473,6 +486,7 @@ static const struct of_device_id rockchip_rgb_dt_ids[] = { { .compatible = "rockchip,rk3368-rgb", }, { .compatible = "rockchip,rk3568-rgb", .data = &rk3568_rgb_funcs }, { .compatible = "rockchip,rk3588-rgb", }, + { .compatible = "rockchip,rv1106-rgb", .data = &rv1106_rgb_funcs}, { .compatible = "rockchip,rv1108-rgb", }, { .compatible = "rockchip,rv1126-rgb", .data = &rv1126_rgb_funcs}, {}