drm/msm/dsi: add three helper functions
authorDmitry Baryshkov <dmitry.baryshkov@linaro.org>
Sat, 17 Jul 2021 12:40:11 +0000 (15:40 +0300)
committerRob Clark <robdclark@chromium.org>
Sat, 7 Aug 2021 18:48:39 +0000 (11:48 -0700)
Add three helper functions to be used by display drivers for setting up
encoders.

Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Reviewed-by: Abhinav Kumar <abhinavk@codeaurora.org>
Link: https://lore.kernel.org/r/20210717124016.316020-3-dmitry.baryshkov@linaro.org
Reviewed-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Signed-off-by: Rob Clark <robdclark@chromium.org>
drivers/gpu/drm/msm/dsi/dsi.c
drivers/gpu/drm/msm/dsi/dsi_manager.c
drivers/gpu/drm/msm/msm_drv.h

index 75afc12..5201d7e 100644 (file)
@@ -13,6 +13,13 @@ struct drm_encoder *msm_dsi_get_encoder(struct msm_dsi *msm_dsi)
        return msm_dsi->encoder;
 }
 
+bool msm_dsi_is_cmd_mode(struct msm_dsi *msm_dsi)
+{
+       unsigned long host_flags = msm_dsi_host_get_mode_flags(msm_dsi->host);
+
+       return !(host_flags & MIPI_DSI_MODE_VIDEO);
+}
+
 static int dsi_get_phy(struct msm_dsi *msm_dsi)
 {
        struct platform_device *pdev = msm_dsi->pdev;
index 1849438..d673066 100644 (file)
@@ -215,12 +215,6 @@ static int dsi_mgr_bridge_get_id(struct drm_bridge *bridge)
        return dsi_bridge->id;
 }
 
-static bool dsi_mgr_is_cmd_mode(struct msm_dsi *msm_dsi)
-{
-       unsigned long host_flags = msm_dsi_host_get_mode_flags(msm_dsi->host);
-       return !(host_flags & MIPI_DSI_MODE_VIDEO);
-}
-
 void msm_dsi_manager_setup_encoder(int id)
 {
        struct msm_dsi *msm_dsi = dsi_mgr_get_dsi(id);
@@ -230,7 +224,7 @@ void msm_dsi_manager_setup_encoder(int id)
 
        if (encoder && kms->funcs->set_encoder_mode)
                kms->funcs->set_encoder_mode(kms, encoder,
-                                            dsi_mgr_is_cmd_mode(msm_dsi));
+                                            msm_dsi_is_cmd_mode(msm_dsi));
 }
 
 static int msm_dsi_manager_panel_init(struct drm_connector *conn, u8 id)
@@ -275,7 +269,7 @@ static int msm_dsi_manager_panel_init(struct drm_connector *conn, u8 id)
        if (other_dsi && other_dsi->panel && kms->funcs->set_split_display) {
                kms->funcs->set_split_display(kms, master_dsi->encoder,
                                              slave_dsi->encoder,
-                                             dsi_mgr_is_cmd_mode(msm_dsi));
+                                             msm_dsi_is_cmd_mode(msm_dsi));
        }
 
 out:
@@ -851,3 +845,12 @@ void msm_dsi_manager_unregister(struct msm_dsi *msm_dsi)
                msm_dsim->dsi[msm_dsi->id] = NULL;
 }
 
+bool msm_dsi_is_bonded_dsi(struct msm_dsi *msm_dsi)
+{
+       return IS_BONDED_DSI();
+}
+
+bool msm_dsi_is_master_dsi(struct msm_dsi *msm_dsi)
+{
+       return IS_MASTER_DSI_LINK(msm_dsi->id);
+}
index 1a42903..8b005d1 100644 (file)
@@ -349,7 +349,9 @@ void __exit msm_dsi_unregister(void);
 int msm_dsi_modeset_init(struct msm_dsi *msm_dsi, struct drm_device *dev,
                         struct drm_encoder *encoder);
 void msm_dsi_snapshot(struct msm_disp_state *disp_state, struct msm_dsi *msm_dsi);
-
+bool msm_dsi_is_cmd_mode(struct msm_dsi *msm_dsi);
+bool msm_dsi_is_bonded_dsi(struct msm_dsi *msm_dsi);
+bool msm_dsi_is_master_dsi(struct msm_dsi *msm_dsi);
 #else
 static inline void __init msm_dsi_register(void)
 {
@@ -366,7 +368,18 @@ static inline int msm_dsi_modeset_init(struct msm_dsi *msm_dsi,
 static inline void msm_dsi_snapshot(struct msm_disp_state *disp_state, struct msm_dsi *msm_dsi)
 {
 }
-
+static inline bool msm_dsi_is_cmd_mode(struct msm_dsi *msm_dsi)
+{
+       return false;
+}
+static inline bool msm_dsi_is_bonded_dsi(struct msm_dsi *msm_dsi)
+{
+       return false;
+}
+static inline bool msm_dsi_is_master_dsi(struct msm_dsi *msm_dsi)
+{
+       return false;
+}
 #endif
 
 #ifdef CONFIG_DRM_MSM_DP