]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
drm/bridge: cadence: Convert to drm_output_color_format
authorMaxime Ripard <mripard@kernel.org>
Thu, 5 Mar 2026 09:04:59 +0000 (10:04 +0100)
committerMaxime Ripard <mripard@kernel.org>
Tue, 24 Mar 2026 12:54:32 +0000 (13:54 +0100)
Now that we introduced a new drm_output_color_format enum to represent
what DRM_COLOR_FORMAT_* bits were representing, we can switch to the new
enum.

The main difference is that while DRM_COLOR_FORMAT_ was a bitmask,
drm_output_color_format is a proper enum. However, the enum was done is
such a way than DRM_COLOR_FORMAT_X = BIT(DRM_OUTPUT_COLOR_FORMAT_X) so
the transitition is easier.

The only thing we need to consider is if the original code meant to use
that value as a bitmask, in which case we do need to keep the bit shift,
or as a discriminant in which case we don't.

Acked-by: Jani Nikula <jani.nikula@intel.com>
Link: https://lore.kernel.org/r/20260305-drm-rework-color-formats-v3-7-f3935f6db579@kernel.org
Signed-off-by: Maxime Ripard <mripard@kernel.org>
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.h

index 945bb47c172ba44c77c65adad495243f8df8e535..064c6915c8960ec12a2980f83d3bdb21b782f111 100644 (file)
@@ -1448,14 +1448,14 @@ static u32 cdns_mhdp_get_bpp(struct cdns_mhdp_display_fmt *fmt)
                return fmt->bpc;
 
        switch (fmt->color_format) {
-       case DRM_COLOR_FORMAT_RGB444:
-       case DRM_COLOR_FORMAT_YCBCR444:
+       case DRM_OUTPUT_COLOR_FORMAT_RGB444:
+       case DRM_OUTPUT_COLOR_FORMAT_YCBCR444:
                bpp = fmt->bpc * 3;
                break;
-       case DRM_COLOR_FORMAT_YCBCR422:
+       case DRM_OUTPUT_COLOR_FORMAT_YCBCR422:
                bpp = fmt->bpc * 2;
                break;
-       case DRM_COLOR_FORMAT_YCBCR420:
+       case DRM_OUTPUT_COLOR_FORMAT_YCBCR420:
                bpp = fmt->bpc * 3 / 2;
                break;
        default:
@@ -1552,26 +1552,26 @@ static void cdns_mhdp_configure_video(struct cdns_mhdp_device *mhdp,
         * If YCBCR supported and stream not SD, use ITU709
         * Need to handle ITU version with YCBCR420 when supported
         */
-       if ((pxlfmt == DRM_COLOR_FORMAT_YCBCR444 ||
-            pxlfmt == DRM_COLOR_FORMAT_YCBCR422) && mode->crtc_vdisplay >= 720)
+       if ((pxlfmt == DRM_OUTPUT_COLOR_FORMAT_YCBCR444 ||
+            pxlfmt == DRM_OUTPUT_COLOR_FORMAT_YCBCR422) && mode->crtc_vdisplay >= 720)
                misc0 = DP_YCBCR_COEFFICIENTS_ITU709;
 
        bpp = cdns_mhdp_get_bpp(&mhdp->display_fmt);
 
        switch (pxlfmt) {
-       case DRM_COLOR_FORMAT_RGB444:
+       case DRM_OUTPUT_COLOR_FORMAT_RGB444:
                pxl_repr = CDNS_DP_FRAMER_RGB << CDNS_DP_FRAMER_PXL_FORMAT;
                misc0 |= DP_COLOR_FORMAT_RGB;
                break;
-       case DRM_COLOR_FORMAT_YCBCR444:
+       case DRM_OUTPUT_COLOR_FORMAT_YCBCR444:
                pxl_repr = CDNS_DP_FRAMER_YCBCR444 << CDNS_DP_FRAMER_PXL_FORMAT;
                misc0 |= DP_COLOR_FORMAT_YCbCr444 | DP_TEST_DYNAMIC_RANGE_CEA;
                break;
-       case DRM_COLOR_FORMAT_YCBCR422:
+       case DRM_OUTPUT_COLOR_FORMAT_YCBCR422:
                pxl_repr = CDNS_DP_FRAMER_YCBCR422 << CDNS_DP_FRAMER_PXL_FORMAT;
                misc0 |= DP_COLOR_FORMAT_YCbCr422 | DP_TEST_DYNAMIC_RANGE_CEA;
                break;
-       case DRM_COLOR_FORMAT_YCBCR420:
+       case DRM_OUTPUT_COLOR_FORMAT_YCBCR420:
                pxl_repr = CDNS_DP_FRAMER_YCBCR420 << CDNS_DP_FRAMER_PXL_FORMAT;
                break;
        default:
@@ -1667,7 +1667,7 @@ static void cdns_mhdp_configure_video(struct cdns_mhdp_device *mhdp,
        if (mhdp->display_fmt.y_only)
                misc1 |= CDNS_DP_TEST_COLOR_FORMAT_RAW_Y_ONLY;
        /* Use VSC SDP for Y420 */
-       if (pxlfmt == DRM_COLOR_FORMAT_YCBCR420)
+       if (pxlfmt == DRM_OUTPUT_COLOR_FORMAT_YCBCR420)
                misc1 = CDNS_DP_TEST_VSC_SDP;
 
        cdns_mhdp_reg_write(mhdp, CDNS_DP_MSA_MISC(stream_id),
@@ -2356,7 +2356,7 @@ static int cdns_mhdp_probe(struct platform_device *pdev)
 
        /* The only currently supported format */
        mhdp->display_fmt.y_only = false;
-       mhdp->display_fmt.color_format = DRM_COLOR_FORMAT_RGB444;
+       mhdp->display_fmt.color_format = DRM_OUTPUT_COLOR_FORMAT_RGB444;
        mhdp->display_fmt.bpc = 8;
 
        mhdp->bridge.of_node = pdev->dev.of_node;
index b297db53ba2835e43e3cb238887d7f4f03309683..b53335b0d22c3ecda2600733d22adca52d320d67 100644 (file)
@@ -306,7 +306,7 @@ struct cdns_mhdp_sink {
 };
 
 struct cdns_mhdp_display_fmt {
-       u32 color_format;
+       enum drm_output_color_format color_format;
        u32 bpc;
        bool y_only;
 };