drm/msm/dsi: Pull out panel init code into function
authorSean Paul <seanpaul@chromium.org>
Mon, 17 Jun 2019 20:12:54 +0000 (16:12 -0400)
committerSean Paul <seanpaul@chromium.org>
Thu, 20 Jun 2019 18:42:11 +0000 (14:42 -0400)
Pull all of the panel init code out of detect() and put it in its own
function. This will be useful in future patches where it's moved from
detect().

Reviewed-by: Rob Clark <robdclark@chromium.org>
Signed-off-by: Sean Paul <seanpaul@chromium.org>
Link: https://patchwork.freedesktop.org/patch/msgid/20190617201301.133275-6-sean@poorly.run
drivers/gpu/drm/msm/dsi/dsi_manager.c

index ffc0955..4be0240 100644 (file)
@@ -239,17 +239,14 @@ static bool dsi_mgr_is_cmd_mode(struct msm_dsi *msm_dsi)
        return !(host_flags & MIPI_DSI_MODE_VIDEO);
 }
 
-static enum drm_connector_status dsi_mgr_connector_detect(
-               struct drm_connector *connector, bool force)
+static void msm_dsi_manager_panel_init(struct drm_connector *connector, u8 id)
 {
-       int id = dsi_mgr_connector_get_id(connector);
        struct msm_dsi *msm_dsi = dsi_mgr_get_dsi(id);
        struct msm_dsi *other_dsi = dsi_mgr_get_other_dsi(id);
        struct msm_drm_private *priv = connector->dev->dev_private;
        struct msm_kms *kms = priv->kms;
        bool cmd_mode;
 
-       DBG("id=%d", id);
        if (!msm_dsi->panel) {
                msm_dsi->panel = msm_dsi_host_get_panel(msm_dsi->host);
 
@@ -292,6 +289,17 @@ static enum drm_connector_status dsi_mgr_connector_detect(
                                pr_err("mdp does not support dual DSI\n");
                }
        }
+}
+
+static enum drm_connector_status dsi_mgr_connector_detect(
+               struct drm_connector *connector, bool force)
+{
+       int id = dsi_mgr_connector_get_id(connector);
+       struct msm_dsi *msm_dsi = dsi_mgr_get_dsi(id);
+
+       DBG("id=%d", id);
+       if (!msm_dsi->panel)
+               msm_dsi_manager_panel_init(connector, id);
 
        return msm_dsi->panel ? connector_status_connected :
                connector_status_disconnected;