]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
drm/mediatek: mtk_dpi: Allow additional output formats on MT8195/88
authorAngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Wed, 9 Apr 2025 13:13:05 +0000 (15:13 +0200)
committerChun-Kuang Hu <chunkuang.hu@kernel.org>
Sun, 27 Apr 2025 01:35:03 +0000 (01:35 +0000)
Allow additional output formats in both DPI and DP_INTF blocks of
the MT8195 and MT8188 SoCs (as the latter is fully compatible with,
hence reuses, the former's platform data for both blocks) by adding:

1. New formats to the `mt8195_output_fmts` array for dp_intf,
   lacking YUV422 12-bits support, and adding RGB888 2X12_LE/BE
   (8-bits), BGR888 (8-bits) RGB101010 1x30 (10-bits), and YUV
   formats, including YUV422 8/10 bits, and YUV444 8/10 bits; and
2. A new `mt8195_dpi_output_fmts` array for DPI only, with all of
   for formats added to dp_intf and with the addition of the
   YUYV12_1X24 (YUV422 12-bits) output format.

Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Link: https://patchwork.kernel.org/project/dri-devel/patch/20250409131306.108635-5-angelogioacchino.delregno@collabora.com/
Signed-off-by: Chun-Kuang Hu <chunkuang.hu@kernel.org>
drivers/gpu/drm/mediatek/mtk_dpi.c

index a9e8113a1618d59d329ac05b1849b3438e2d1d6c..dccc325625adc9026502856a4f6347badb351cb5 100644 (file)
@@ -1093,9 +1093,29 @@ static const u32 mt8183_output_fmts[] = {
        MEDIA_BUS_FMT_RGB888_2X12_BE,
 };
 
+static const u32 mt8195_dpi_output_fmts[] = {
+       MEDIA_BUS_FMT_BGR888_1X24,
+       MEDIA_BUS_FMT_RGB888_1X24,
+       MEDIA_BUS_FMT_RGB888_2X12_LE,
+       MEDIA_BUS_FMT_RGB888_2X12_BE,
+       MEDIA_BUS_FMT_RGB101010_1X30,
+       MEDIA_BUS_FMT_YUYV8_1X16,
+       MEDIA_BUS_FMT_YUYV10_1X20,
+       MEDIA_BUS_FMT_YUYV12_1X24,
+       MEDIA_BUS_FMT_YUV8_1X24,
+       MEDIA_BUS_FMT_YUV10_1X30,
+};
+
 static const u32 mt8195_output_fmts[] = {
+       MEDIA_BUS_FMT_BGR888_1X24,
        MEDIA_BUS_FMT_RGB888_1X24,
+       MEDIA_BUS_FMT_RGB888_2X12_LE,
+       MEDIA_BUS_FMT_RGB888_2X12_BE,
+       MEDIA_BUS_FMT_RGB101010_1X30,
        MEDIA_BUS_FMT_YUYV8_1X16,
+       MEDIA_BUS_FMT_YUYV10_1X20,
+       MEDIA_BUS_FMT_YUV8_1X24,
+       MEDIA_BUS_FMT_YUV10_1X30,
 };
 
 static const struct mtk_dpi_factor dpi_factor_mt2701[] = {
@@ -1208,8 +1228,8 @@ static const struct mtk_dpi_conf mt8192_conf = {
 
 static const struct mtk_dpi_conf mt8195_conf = {
        .max_clock_khz = 594000,
-       .output_fmts = mt8183_output_fmts,
-       .num_output_fmts = ARRAY_SIZE(mt8183_output_fmts),
+       .output_fmts = mt8195_dpi_output_fmts,
+       .num_output_fmts = ARRAY_SIZE(mt8195_dpi_output_fmts),
        .pixels_per_iter = 1,
        .is_ck_de_pol = true,
        .swap_input_support = true,