Merge tag 'pstore-v6.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/kees...
[platform/kernel/linux-starfive.git] / drivers / gpu / drm / mediatek / mtk_disp_rdma.c
index a5a0c3b..d4df17a 100644 (file)
 
 #define RDMA_MEM_GMC                           0x40402020
 
+static const u32 mt8173_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,
+};
+
 struct mtk_disp_rdma_data {
        unsigned int fifo_size;
+       const u32 *formats;
+       size_t num_formats;
 };
 
 /*
@@ -127,6 +143,20 @@ void mtk_rdma_disable_vblank(struct device *dev)
        rdma_update_bits(dev, DISP_REG_RDMA_INT_ENABLE, RDMA_FRAME_END_INT, 0);
 }
 
+const u32 *mtk_rdma_get_formats(struct device *dev)
+{
+       struct mtk_disp_rdma *rdma = dev_get_drvdata(dev);
+
+       return rdma->data->formats;
+}
+
+size_t mtk_rdma_get_num_formats(struct device *dev)
+{
+       struct mtk_disp_rdma *rdma = dev_get_drvdata(dev);
+
+       return rdma->data->num_formats;
+}
+
 int mtk_rdma_clk_enable(struct device *dev)
 {
        struct mtk_disp_rdma *rdma = dev_get_drvdata(dev);
@@ -361,18 +391,26 @@ static int mtk_disp_rdma_remove(struct platform_device *pdev)
 
 static const struct mtk_disp_rdma_data mt2701_rdma_driver_data = {
        .fifo_size = SZ_4K,
+       .formats = mt8173_formats,
+       .num_formats = ARRAY_SIZE(mt8173_formats),
 };
 
 static const struct mtk_disp_rdma_data mt8173_rdma_driver_data = {
        .fifo_size = SZ_8K,
+       .formats = mt8173_formats,
+       .num_formats = ARRAY_SIZE(mt8173_formats),
 };
 
 static const struct mtk_disp_rdma_data mt8183_rdma_driver_data = {
        .fifo_size = 5 * SZ_1K,
+       .formats = mt8173_formats,
+       .num_formats = ARRAY_SIZE(mt8173_formats),
 };
 
 static const struct mtk_disp_rdma_data mt8195_rdma_driver_data = {
        .fifo_size = 1920,
+       .formats = mt8173_formats,
+       .num_formats = ARRAY_SIZE(mt8173_formats),
 };
 
 static const struct of_device_id mtk_disp_rdma_driver_dt_match[] = {