disp: msm: dsi: move panel regulator votes from bind to probe

Add vote for panel regulators in dsi probe to make sure
panel regulators are ON until dsi bind is completed
for cont-splash enabled usecase. Remove this panel regulator
vote when dsi component bind is done.

Change-Id: I0b1d43fa1b16385712abc1d8aaa0e778f31ba634
Signed-off-by: Chandan Uddaraju <chandanu@codeaurora.org>
此提交包含在:
Chandan Uddaraju
2020-04-02 21:34:27 -07:00
父節點 d4566743e0
當前提交 fa8f623802
共有 2 個檔案被更改,包括 40 行新增11 行删除

查看文件

@@ -5057,6 +5057,17 @@ static int dsi_display_bind(struct device *dev,
}
}
/* Remove the panel vote that was added during dsi display probe */
if (display->panel) {
rc = dsi_pwr_enable_regulator(&display->panel->power_info,
false);
if (rc) {
DSI_ERR("[%s] failed to disable vregs, rc=%d\n",
display->panel->name, rc);
goto error_host_deinit;
}
}
/* register te irq handler */
dsi_display_register_te_irq(display);
@@ -5167,6 +5178,24 @@ static int dsi_display_init(struct dsi_display *display)
goto end;
}
/*
* Vote on panel regulator is added to make sure panel regulators
* are ON until dsi bind is completed for cont-splash enabled usecase.
* This panel regulator vote will be removed after bind is done.
* For GKI, adding this vote will make sure that sync_state
* kernel driver doesn't disable the panel regulators before
* splash_config() function adds vote for these regulators.
*/
if (display->panel) {
rc = dsi_pwr_enable_regulator(&display->panel->power_info,
true);
if (rc) {
DSI_ERR("[%s] failed to enable vregs, rc=%d\n",
display->panel->name, rc);
return rc;
}
}
rc = component_add(&pdev->dev, &dsi_display_comp_ops);
if (rc)
DSI_ERR("component add failed, rc=%d\n", rc);