OSDN Git Service

drm/msm/dsi: untangle cphy setting from the src pll setting
authorDmitry Baryshkov <dmitry.baryshkov@linaro.org>
Wed, 6 Oct 2021 20:48:27 +0000 (23:48 +0300)
committerRob Clark <robdclark@chromium.org>
Sun, 28 Nov 2021 17:32:02 +0000 (09:32 -0800)
Move DPHY/CPHY setting from msm_dsi_host_set_src_pll() to new function
msm_dsi_host_set_phy_mode().

Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Reviewed-by: Abhinav Kumar <abhinavk@codeaurora.org>
Link: https://lore.kernel.org/r/20211006204828.1218225-1-dmitry.baryshkov@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.h
drivers/gpu/drm/msm/dsi/dsi_host.c
drivers/gpu/drm/msm/dsi/dsi_manager.c

index 569c8ff..79a2d22 100644 (file)
@@ -120,6 +120,8 @@ unsigned long msm_dsi_host_get_mode_flags(struct mipi_dsi_host *host);
 struct drm_bridge *msm_dsi_host_get_bridge(struct mipi_dsi_host *host);
 int msm_dsi_host_register(struct mipi_dsi_host *host, bool check_defer);
 void msm_dsi_host_unregister(struct mipi_dsi_host *host);
+void msm_dsi_host_set_phy_mode(struct mipi_dsi_host *host,
+                       struct msm_dsi_phy *src_phy);
 int msm_dsi_host_set_src_pll(struct mipi_dsi_host *host,
                        struct msm_dsi_phy *src_phy);
 void msm_dsi_host_reset_phy(struct mipi_dsi_host *host);
index 0afc3b7..a4ba973 100644 (file)
@@ -2187,6 +2187,14 @@ void msm_dsi_host_cmd_xfer_commit(struct mipi_dsi_host *host, u32 dma_base,
        wmb();
 }
 
+void msm_dsi_host_set_phy_mode(struct mipi_dsi_host *host,
+       struct msm_dsi_phy *src_phy)
+{
+       struct msm_dsi_host *msm_host = to_msm_dsi_host(host);
+
+       msm_host->cphy_mode = src_phy->cphy_mode;
+}
+
 int msm_dsi_host_set_src_pll(struct mipi_dsi_host *host,
        struct msm_dsi_phy *src_phy)
 {
@@ -2194,8 +2202,6 @@ int msm_dsi_host_set_src_pll(struct mipi_dsi_host *host,
        struct clk *byte_clk_provider, *pixel_clk_provider;
        int ret;
 
-       msm_host->cphy_mode = src_phy->cphy_mode;
-
        ret = msm_dsi_phy_get_clk_provider(src_phy,
                                &byte_clk_provider, &pixel_clk_provider);
        if (ret) {
index 20c4d65..6a18287 100644 (file)
@@ -79,6 +79,7 @@ static int dsi_mgr_setup_components(int id)
                        return ret;
 
                msm_dsi_phy_set_usecase(msm_dsi->phy, MSM_DSI_PHY_STANDALONE);
+               msm_dsi_host_set_phy_mode(msm_dsi->host, msm_dsi->phy);
                ret = msm_dsi_host_set_src_pll(msm_dsi->host, msm_dsi->phy);
        } else if (!other_dsi) {
                ret = 0;
@@ -106,6 +107,8 @@ static int dsi_mgr_setup_components(int id)
                                        MSM_DSI_PHY_MASTER);
                msm_dsi_phy_set_usecase(clk_slave_dsi->phy,
                                        MSM_DSI_PHY_SLAVE);
+               msm_dsi_host_set_phy_mode(msm_dsi->host, msm_dsi->phy);
+               msm_dsi_host_set_phy_mode(other_dsi->host, other_dsi->phy);
                ret = msm_dsi_host_set_src_pll(msm_dsi->host, clk_master_dsi->phy);
                if (ret)
                        return ret;