mirror of
https://github.com/torvalds/linux.git
synced 2026-06-02 11:33:28 +02:00
drm/bridge: cadence: Convert to drm_output_color_format
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>
This commit is contained in:
parent
97f71dac35
commit
a90bd3baff
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
};
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user