drm/vc4: Calculate bpc based on max_requested_bpc
authorMatthias Reichl <hias@horus.com>
Sat, 14 Jan 2023 15:24:39 +0000 (16:24 +0100)
committerPhil Elwell <8911409+pelwell@users.noreply.github.com>
Wed, 8 Feb 2023 16:47:50 +0000 (16:47 +0000)
This aligns vc4 with Intel, AMD and Synopsis drivers and fixes max bpc
connector property not working as expected on monitors with YCbCr 4:2:2
support but not deep color support.

max_bpc in connector state is clamped at max_bpc from display info and
the latter only takes deep color modes into account so it will always
be 8, even if the display can do 4:2:2 12-bit output.

Signed-off-by: Matthias Reichl <hias@horus.com>
drivers/gpu/drm/vc4/vc4_hdmi.c

index 4dfeaa3..65868eb 100644 (file)
@@ -2124,7 +2124,7 @@ vc4_hdmi_encoder_compute_config(const struct vc4_hdmi *vc4_hdmi,
 {
        struct drm_device *dev = vc4_hdmi->connector.dev;
        struct drm_connector_state *conn_state = &vc4_state->base;
-       unsigned int max_bpc = clamp_t(unsigned int, conn_state->max_bpc, 8, 12);
+       unsigned int max_bpc = clamp_t(unsigned int, conn_state->max_requested_bpc, 8, 12);
        unsigned int bpc;
        int ret;