summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--drivers/gpu/drm/msm/dsi-staging/dsi_display.c70
1 files changed, 14 insertions, 56 deletions
diff --git a/drivers/gpu/drm/msm/dsi-staging/dsi_display.c b/drivers/gpu/drm/msm/dsi-staging/dsi_display.c
index 4bf694e2e7fa..4d4968eae843 100644
--- a/drivers/gpu/drm/msm/dsi-staging/dsi_display.c
+++ b/drivers/gpu/drm/msm/dsi-staging/dsi_display.c
@@ -176,18 +176,6 @@ static int dsi_display_ctrl_power_on(struct dsi_display *display)
if (display->cont_splash_enabled) {
pr_debug("skip ctrl power on\n");
- for (i = 0; i < display->ctrl_count; i++) {
- ctrl = &display->ctrl[i];
- if (!ctrl->ctrl)
- continue;
- if (!ctrl->ctrl->current_state.pwr_enabled) {
- ctrl->ctrl->pwr_info.host_pwr.refcount++;
- ctrl->ctrl->pwr_info.digital.refcount++;
- ctrl->ctrl->current_state.power_state =
- DSI_CTRL_POWER_VREG_ON;
- ctrl->ctrl->current_state.pwr_enabled = true;
- }
- }
return rc;
}
@@ -251,16 +239,6 @@ static int dsi_display_phy_power_on(struct dsi_display *display)
/* early return for splash enabled case */
if (display->cont_splash_enabled) {
pr_debug("skip phy power on\n");
- for (i = 0; i < display->ctrl_count; i++) {
- ctrl = &display->ctrl[i];
- if (!ctrl->ctrl)
- continue;
- if (!ctrl->phy->power_state) {
- ctrl->phy->pwr_info.digital.refcount++;
- ctrl->phy->pwr_info.phy_pwr.refcount++;
- ctrl->phy->power_state = true;
- }
- }
return rc;
}
@@ -320,25 +298,9 @@ static int dsi_display_ctrl_core_clk_on(struct dsi_display *display)
int i;
struct dsi_display_ctrl *m_ctrl, *ctrl;
- m_ctrl = &display->ctrl[display->clk_master_idx];
-
/* early return for splash enabled case */
if (display->cont_splash_enabled) {
pr_debug("skip core clk on calling\n");
- m_ctrl->ctrl->current_state.pwr_enabled = true;
- m_ctrl->ctrl->current_state.core_clk_enabled = true;
- m_ctrl->ctrl->current_state.power_state =
- DSI_CTRL_POWER_CORE_CLK_ON;
- for (i = 0; i < display->ctrl_count; i++) {
- ctrl = &display->ctrl[i];
- if (!ctrl->ctrl || (ctrl == m_ctrl))
- continue;
- ctrl->ctrl->current_state.pwr_enabled = true;
- ctrl->ctrl->current_state.core_clk_enabled = true;
- ctrl->ctrl->current_state.power_state =
- DSI_CTRL_POWER_CORE_CLK_ON;
- }
-
return rc;
}
@@ -347,6 +309,8 @@ static int dsi_display_ctrl_core_clk_on(struct dsi_display *display)
* be enabled before the other controller. Master controller in the
* clock context refers to the controller that sources the clock.
*/
+ m_ctrl = &display->ctrl[display->clk_master_idx];
+
rc = dsi_ctrl_set_power_state(m_ctrl->ctrl, DSI_CTRL_POWER_CORE_CLK_ON);
if (rc) {
pr_err("[%s] failed to turn on clocks, rc=%d\n",
@@ -381,26 +345,9 @@ static int dsi_display_ctrl_link_clk_on(struct dsi_display *display)
int i;
struct dsi_display_ctrl *m_ctrl, *ctrl;
- m_ctrl = &display->ctrl[display->clk_master_idx];
-
/* early return for splash enabled case */
if (display->cont_splash_enabled) {
pr_debug("skip ctrl link clk on calling\n");
- m_ctrl->ctrl->current_state.pwr_enabled = true;
- m_ctrl->ctrl->current_state.core_clk_enabled = true;
- m_ctrl->ctrl->current_state.link_clk_enabled = true;
- m_ctrl->ctrl->current_state.power_state =
- DSI_CTRL_POWER_LINK_CLK_ON;
- for (i = 0; i < display->ctrl_count; i++) {
- ctrl = &display->ctrl[i];
- if (!ctrl->ctrl || (ctrl == m_ctrl))
- continue;
- ctrl->ctrl->current_state.pwr_enabled = true;
- ctrl->ctrl->current_state.core_clk_enabled = true;
- ctrl->ctrl->current_state.link_clk_enabled = true;
- ctrl->ctrl->current_state.power_state =
- DSI_CTRL_POWER_LINK_CLK_ON;
- }
return rc;
}
@@ -409,6 +356,7 @@ static int dsi_display_ctrl_link_clk_on(struct dsi_display *display)
* be enabled before the other controller. Master controller in the
* clock context refers to the controller that sources the clock.
*/
+ m_ctrl = &display->ctrl[display->clk_master_idx];
rc = dsi_ctrl_set_clock_source(m_ctrl->ctrl,
&display->clock_info.src_clks);
@@ -2910,10 +2858,20 @@ int dsi_dsiplay_setup_splash_resource(struct dsi_display *display)
if (!ctrl)
return -EINVAL;
+ /* set dsi ctrl power state */
ret = dsi_ctrl_set_power_state(ctrl->ctrl,
DSI_CTRL_POWER_LINK_CLK_ON);
if (ret) {
- SDE_ERROR("calling dsi_ctrl_set_power_state failed\n");
+ pr_err("%s:fail to call dsi_ctrl_set_power_state\n",
+ __func__);
+ return ret;
+ }
+
+ /* set dsi phy power state */
+ ret = dsi_phy_set_power_state(ctrl->phy, true);
+ if (ret) {
+ pr_err("%s:fail to call dsi_phy_set_power_state\n",
+ __func__);
return ret;
}
}