drm/mediatek: Add mdp_rdma get format function
authorNancy.Lin <nancy.lin@mediatek.com>
Thu, 30 Mar 2023 03:26:13 +0000 (11:26 +0800)
committerChun-Kuang Hu <chunkuang.hu@kernel.org>
Mon, 3 Apr 2023 03:02:29 +0000 (03:02 +0000)
Add mdp_rdma get_format and get_num_formats function.

Signed-off-by: Nancy.Lin <nancy.lin@mediatek.com>
Link: https://patchwork.kernel.org/project/linux-mediatek/patch/20230330032614.18837-2-nancy.lin@mediatek.com/
Signed-off-by: Chun-Kuang Hu <chunkuang.hu@kernel.org>
drivers/gpu/drm/mediatek/mtk_disp_drv.h
drivers/gpu/drm/mediatek/mtk_mdp_rdma.c

index 0d28b2e2069cc54cf190e0e3ac4d1544dc645170..17b169530bebf329bfc5fdb23ecba4094016158a 100644 (file)
@@ -152,4 +152,7 @@ void mtk_mdp_rdma_start(struct device *dev, struct cmdq_pkt *cmdq_pkt);
 void mtk_mdp_rdma_stop(struct device *dev, struct cmdq_pkt *cmdq_pkt);
 void mtk_mdp_rdma_config(struct device *dev, struct mtk_mdp_rdma_cfg *cfg,
                         struct cmdq_pkt *cmdq_pkt);
+const u32 *mtk_mdp_rdma_get_formats(struct device *dev);
+size_t mtk_mdp_rdma_get_num_formats(struct device *dev);
+
 #endif
index eecfa98ff52e8125d6a8cb5d49a2df667e268626..e06db6e56b5f6e5bd2d7c484cdd114e832d97e82 100644 (file)
 #define RDMA_CSC_FULL709_TO_RGB                        5
 #define RDMA_CSC_BT601_TO_RGB                  6
 
+static const u32 formats[] = {
+       DRM_FORMAT_XRGB8888,
+       DRM_FORMAT_ARGB8888,
+       DRM_FORMAT_BGRX8888,
+       DRM_FORMAT_BGRA8888,
+       DRM_FORMAT_ABGR8888,
+       DRM_FORMAT_XBGR8888,
+       DRM_FORMAT_RGB888,
+       DRM_FORMAT_BGR888,
+       DRM_FORMAT_RGB565,
+       DRM_FORMAT_UYVY,
+       DRM_FORMAT_YUYV,
+};
+
 enum rdma_format {
        RDMA_INPUT_FORMAT_RGB565 = 0,
        RDMA_INPUT_FORMAT_RGB888 = 1,
@@ -219,6 +233,16 @@ void mtk_mdp_rdma_config(struct device *dev, struct mtk_mdp_rdma_cfg *cfg,
                           MDP_RDMA_MF_CLIP_SIZE, FLD_MF_CLIP_H);
 }
 
+const u32 *mtk_mdp_rdma_get_formats(struct device *dev)
+{
+       return formats;
+}
+
+size_t mtk_mdp_rdma_get_num_formats(struct device *dev)
+{
+       return ARRAY_SIZE(formats);
+}
+
 int mtk_mdp_rdma_clk_enable(struct device *dev)
 {
        struct mtk_mdp_rdma *rdma = dev_get_drvdata(dev);