diff --git a/drivers/gpu/drm/rockchip/cdn-dp-core.c b/drivers/gpu/drm/rockchip/cdn-dp-core.c index e483bd941d89..a321b2896435 100644 --- a/drivers/gpu/drm/rockchip/cdn-dp-core.c +++ b/drivers/gpu/drm/rockchip/cdn-dp-core.c @@ -953,12 +953,22 @@ static int cdn_dp_encoder_atomic_check(struct drm_encoder *encoder, struct drm_connector_state *conn_state) { struct cdn_dp_device *dp = encoder_to_dp(encoder); + struct drm_display_info *di = &dp->connector.display_info; struct rockchip_crtc_state *s = to_rockchip_crtc_state(crtc_state); uint64_t old_cp = DRM_MODE_CONTENT_PROTECTION_UNDESIRED; + switch (di->bpc) { + case 6: + s->bus_format = MEDIA_BUS_FMT_RGB666_1X24_CPADHI; + break; + case 8: + default: + s->bus_format = MEDIA_BUS_FMT_RGB888_1X24; + break; + } + s->output_mode = ROCKCHIP_OUT_MODE_AAAA; s->output_type = DRM_MODE_CONNECTOR_DisplayPort; - s->bus_format = MEDIA_BUS_FMT_RGB888_1X24; s->tv_state = &conn_state->tv; s->eotf = TRADITIONAL_GAMMA_SDR; s->color_space = V4L2_COLORSPACE_DEFAULT;