Replace the per-SoC functions that set up the mutex of the OVL -> DSI
pipeline with per-SoC data: the MOD0 bits of the pipeline components and
the start and end-of-frame selectors of the DSI, written by a single
function.

The functions differed only in those values, so adding a SoC now only
takes data, as in the Linux mtk-mutex driver.

No functional change.

Signed-off-by: David Lechner <[email protected]>
---
 drivers/video/mediatek/mtk_disp_mutex.c | 52 +++++++++++++--------------------
 1 file changed, 21 insertions(+), 31 deletions(-)

diff --git a/drivers/video/mediatek/mtk_disp_mutex.c 
b/drivers/video/mediatek/mtk_disp_mutex.c
index af8e7032a01..1d987ad06f8 100644
--- a/drivers/video/mediatek/mtk_disp_mutex.c
+++ b/drivers/video/mediatek/mtk_disp_mutex.c
@@ -76,11 +76,13 @@
 
 /**
  * struct mtk_disp_mutex_data - per-SoC mutex data
- * @ovl_dsi_enable: set up the mutex of the OVL -> DSI pipeline
+ * @dsi_mod: MOD0 bits of the components of the OVL -> DSI pipeline
+ * @dsi_sof: start and end-of-frame selectors of the DSI
  * @no_clk: the mutex has no clock of its own
  */
 struct mtk_disp_mutex_data {
-       void (*ovl_dsi_enable)(struct udevice *dev);
+       u32 dsi_mod;
+       u32 dsi_sof;
        bool no_clk;
 };
 
@@ -111,39 +113,23 @@ void mt8188_mutex_config_hdmi(struct udevice *dev)
        mtk_disp_comp_write(dev, DISP_MUTEX_EN(MUTEX_HDMI_ID), MUTEX_EN);
 }
 
-static void mt8365_mutex_ovl_dsi_enable(struct udevice *dev)
-{
-       mtk_disp_comp_write(dev, DISP_MUTEX_MOD0(MUTEX_DSI_ID),
-                           MUTEX_MOD_BIT(MT8365_MUTEX_MOD_DISP_OVL0) |
-                           MUTEX_MOD_BIT(MT8365_MUTEX_MOD_DISP_RDMA0) |
-                           MUTEX_MOD_BIT(MT8365_MUTEX_MOD_DISP_COLOR0) |
-                           MUTEX_MOD_BIT(MT8365_MUTEX_MOD_DISP_CCORR) |
-                           MUTEX_MOD_BIT(MT8365_MUTEX_MOD_DISP_AAL) |
-                           MUTEX_MOD_BIT(MT8365_MUTEX_MOD_DISP_GAMMA) |
-                           MUTEX_MOD_BIT(MT8365_MUTEX_MOD_DISP_DITHER));
-       mtk_disp_comp_write(dev, DISP_MUTEX_SOF(MUTEX_DSI_ID),
-                           MT8365_MUTEX_EOF_DSI0 | MT8365_MUTEX_SOF_DSI0);
-       mtk_disp_comp_write(dev, DISP_MUTEX_EN(MUTEX_DSI_ID), MUTEX_EN);
-}
-
-static void mt8366_mutex_ovl_dsi_enable(struct udevice *dev)
-{
-       mtk_disp_comp_write(dev, DISP_MUTEX_MOD0(MUTEX_DSI_ID),
-                           MUTEX_MOD_BIT(MT8366_MUTEX_MOD_DISP_OVL0) |
-                           MUTEX_MOD_BIT(MT8366_MUTEX_MOD_DISP_RDMA0) |
-                           MUTEX_MOD_BIT(MT8366_MUTEX_MOD_DISP_DSI0));
-       mtk_disp_comp_write(dev, DISP_MUTEX_SOF(MUTEX_DSI_ID),
-                           MT8366_MUTEX_EOF_DSI0 | MT8366_MUTEX_SOF_DSI0);
-       mtk_disp_comp_write(dev, DISP_MUTEX_EN(MUTEX_DSI_ID), MUTEX_EN);
-}
-
 static const struct mtk_disp_mutex_data mt8365_mutex_data = {
-       .ovl_dsi_enable = mt8365_mutex_ovl_dsi_enable,
+       .dsi_mod = MUTEX_MOD_BIT(MT8365_MUTEX_MOD_DISP_OVL0) |
+                  MUTEX_MOD_BIT(MT8365_MUTEX_MOD_DISP_RDMA0) |
+                  MUTEX_MOD_BIT(MT8365_MUTEX_MOD_DISP_COLOR0) |
+                  MUTEX_MOD_BIT(MT8365_MUTEX_MOD_DISP_CCORR) |
+                  MUTEX_MOD_BIT(MT8365_MUTEX_MOD_DISP_AAL) |
+                  MUTEX_MOD_BIT(MT8365_MUTEX_MOD_DISP_GAMMA) |
+                  MUTEX_MOD_BIT(MT8365_MUTEX_MOD_DISP_DITHER),
+       .dsi_sof = MT8365_MUTEX_EOF_DSI0 | MT8365_MUTEX_SOF_DSI0,
        .no_clk = true,
 };
 
 static const struct mtk_disp_mutex_data mt8366_mutex_data = {
-       .ovl_dsi_enable = mt8366_mutex_ovl_dsi_enable,
+       .dsi_mod = MUTEX_MOD_BIT(MT8366_MUTEX_MOD_DISP_OVL0) |
+                  MUTEX_MOD_BIT(MT8366_MUTEX_MOD_DISP_RDMA0) |
+                  MUTEX_MOD_BIT(MT8366_MUTEX_MOD_DISP_DSI0),
+       .dsi_sof = MT8366_MUTEX_EOF_DSI0 | MT8366_MUTEX_SOF_DSI0,
 };
 
 int mtk_disp_mutex_ovl_dsi_enable(struct udevice *dev)
@@ -155,7 +141,11 @@ int mtk_disp_mutex_ovl_dsi_enable(struct udevice *dev)
                return -EOPNOTSUPP;
        }
 
-       mutex->data->ovl_dsi_enable(dev);
+       mtk_disp_comp_write(dev, DISP_MUTEX_MOD0(MUTEX_DSI_ID),
+                           mutex->data->dsi_mod);
+       mtk_disp_comp_write(dev, DISP_MUTEX_SOF(MUTEX_DSI_ID),
+                           mutex->data->dsi_sof);
+       mtk_disp_comp_write(dev, DISP_MUTEX_EN(MUTEX_DSI_ID), MUTEX_EN);
 
        return 0;
 }

-- 
2.53.0

Reply via email to