OSDN Git Service

drm/mediatek: Enable AR30 and BA30 overlays on MT8195
authorJustin Green <greenjustin@chromium.org>
Thu, 9 Mar 2023 21:04:16 +0000 (16:04 -0500)
committerChun-Kuang Hu <chunkuang.hu@kernel.org>
Sun, 12 Mar 2023 15:09:21 +0000 (15:09 +0000)
Modify the overlay driver data for MT8195 to enable bit depth control and
enable support for AR30 and BA30 framebuffer formats. This patch in
combination with the previous two patches in the series will allow MT8195
devices to scanout AR30 and BA30 framebuffers.

Tested using "modetest -P" on an MT8195 device. The test pattern displays
correctly for both AR30 and BA30 formats.

Signed-off-by: Justin Green <greenjustin@chromium.org>
Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Link: https://patchwork.kernel.org/project/linux-mediatek/patch/20230309210416.1167020-4-greenjustin@chromium.org/
Signed-off-by: Chun-Kuang Hu <chunkuang.hu@kernel.org>
drivers/gpu/drm/mediatek/mtk_disp_ovl.c

index 6228cd2..8f52cc1 100644 (file)
@@ -86,6 +86,22 @@ static const u32 mt8173_formats[] = {
        DRM_FORMAT_YUYV,
 };
 
+static const u32 mt8195_formats[] = {
+       DRM_FORMAT_XRGB8888,
+       DRM_FORMAT_ARGB8888,
+       DRM_FORMAT_ARGB2101010,
+       DRM_FORMAT_BGRX8888,
+       DRM_FORMAT_BGRA8888,
+       DRM_FORMAT_BGRA1010102,
+       DRM_FORMAT_ABGR8888,
+       DRM_FORMAT_XBGR8888,
+       DRM_FORMAT_RGB888,
+       DRM_FORMAT_BGR888,
+       DRM_FORMAT_RGB565,
+       DRM_FORMAT_UYVY,
+       DRM_FORMAT_YUYV,
+};
+
 struct mtk_disp_ovl_data {
        unsigned int addr;
        unsigned int gmc_bits;
@@ -617,8 +633,9 @@ static const struct mtk_disp_ovl_data mt8195_ovl_driver_data = {
        .fmt_rgb565_is_0 = true,
        .smi_id_en = true,
        .supports_afbc = true,
-       .formats = mt8173_formats,
-       .num_formats = ARRAY_SIZE(mt8173_formats),
+       .formats = mt8195_formats,
+       .num_formats = ARRAY_SIZE(mt8195_formats),
+       .supports_clrfmt_ext = true,
 };
 
 static const struct of_device_id mtk_disp_ovl_driver_dt_match[] = {