From e3e12f52b214121840b44c91de5b3e5af5d3eb84 Mon Sep 17 00:00:00 2001 From: hc <hc@nodka.com> Date: Mon, 06 Nov 2023 03:04:41 +0000 Subject: [PATCH] rk3568 rt init --- kernel/drivers/gpu/drm/rockchip/rockchip_rgb.c | 23 ++++++++++++++++------- 1 files changed, 16 insertions(+), 7 deletions(-) diff --git a/kernel/drivers/gpu/drm/rockchip/rockchip_rgb.c b/kernel/drivers/gpu/drm/rockchip/rockchip_rgb.c index 9ff3186..9a7b1a7 100644 --- a/kernel/drivers/gpu/drm/rockchip/rockchip_rgb.c +++ b/kernel/drivers/gpu/drm/rockchip/rockchip_rgb.c @@ -173,6 +173,8 @@ static void rockchip_rgb_encoder_disable(struct drm_encoder *encoder) { struct rockchip_rgb *rgb = encoder_to_rgb(encoder); + struct drm_crtc *crtc = encoder->crtc; + struct rockchip_crtc_state *s = to_rockchip_crtc_state(crtc->state); if (rgb->panel) { drm_panel_disable(rgb->panel); @@ -186,6 +188,13 @@ rgb->funcs->disable(rgb); pinctrl_pm_select_sleep_state(rgb->dev); + + if (s->output_if & VOP_OUTPUT_IF_RGB) + s->output_if &= ~VOP_OUTPUT_IF_RGB; + else if (s->output_if & VOP_OUTPUT_IF_BT656) + s->output_if &= ~VOP_OUTPUT_IF_BT656; + else if (s->output_if & VOP_OUTPUT_IF_BT1120) + s->output_if &= ~VOP_OUTPUT_IF_BT1120; } static int @@ -205,39 +214,39 @@ switch (s->bus_format) { case MEDIA_BUS_FMT_RGB666_1X18: s->output_mode = ROCKCHIP_OUT_MODE_P666; - s->output_if = VOP_OUTPUT_IF_RGB; + s->output_if |= VOP_OUTPUT_IF_RGB; break; case MEDIA_BUS_FMT_RGB565_1X16: s->output_mode = ROCKCHIP_OUT_MODE_P565; - s->output_if = VOP_OUTPUT_IF_RGB; + s->output_if |= VOP_OUTPUT_IF_RGB; break; case MEDIA_BUS_FMT_SRGB888_3X8: s->output_mode = ROCKCHIP_OUT_MODE_S888; - s->output_if = VOP_OUTPUT_IF_RGB; + s->output_if |= VOP_OUTPUT_IF_RGB; break; case MEDIA_BUS_FMT_SRGB888_DUMMY_4X8: s->output_mode = ROCKCHIP_OUT_MODE_S888_DUMMY; - s->output_if = VOP_OUTPUT_IF_RGB; + s->output_if |= VOP_OUTPUT_IF_RGB; break; case MEDIA_BUS_FMT_YUYV8_2X8: case MEDIA_BUS_FMT_YVYU8_2X8: case MEDIA_BUS_FMT_UYVY8_2X8: case MEDIA_BUS_FMT_VYUY8_2X8: s->output_mode = ROCKCHIP_OUT_MODE_BT656; - s->output_if = VOP_OUTPUT_IF_BT656; + s->output_if |= VOP_OUTPUT_IF_BT656; break; case MEDIA_BUS_FMT_YUYV8_1X16: case MEDIA_BUS_FMT_YVYU8_1X16: case MEDIA_BUS_FMT_UYVY8_1X16: case MEDIA_BUS_FMT_VYUY8_1X16: s->output_mode = ROCKCHIP_OUT_MODE_BT1120; - s->output_if = VOP_OUTPUT_IF_BT1120; + s->output_if |= VOP_OUTPUT_IF_BT1120; break; case MEDIA_BUS_FMT_RGB888_1X24: case MEDIA_BUS_FMT_RGB666_1X24_CPADHI: default: s->output_mode = ROCKCHIP_OUT_MODE_P888; - s->output_if = VOP_OUTPUT_IF_RGB; + s->output_if |= VOP_OUTPUT_IF_RGB; break; } -- Gitblit v1.6.2