mirror of
https://github.com/team-infusion-developers/android_kernel_samsung_msm8976.git
synced 2024-11-01 02:21:16 +00:00
msm: mdss: fix issue with DSI probe deferral
If, for some reason, DSI probe gets deferred, then WB/HDMI gets FB0. Userspace operates thinking FB0 as primary and gets stuck in bad state. Fix this by deferring the probes for WFD/HDMI also in case of DSI Probe deferral. Change-Id: If793ce22aeffafc64df5e56b76a0f27c38e6240d Signed-off-by: Vineet Bajaj <vbajaj@codeaurora.org>
This commit is contained in:
parent
7417499a95
commit
5a919cc529
2 changed files with 14 additions and 1 deletions
|
@ -123,6 +123,7 @@ static int mdss_dsi_regulator_init(struct platform_device *pdev)
|
|||
|
||||
struct mdss_dsi_ctrl_pdata *ctrl_pdata = NULL;
|
||||
int i = 0;
|
||||
int j = 0;
|
||||
|
||||
if (!pdev) {
|
||||
pr_err("%s: invalid input\n", __func__);
|
||||
|
@ -139,9 +140,15 @@ static int mdss_dsi_regulator_init(struct platform_device *pdev)
|
|||
rc = msm_dss_config_vreg(&pdev->dev,
|
||||
ctrl_pdata->power_data[i].vreg_config,
|
||||
ctrl_pdata->power_data[i].num_vreg, 1);
|
||||
if (rc)
|
||||
if (rc) {
|
||||
pr_err("%s: failed to init vregs for %s\n",
|
||||
__func__, __mdss_dsi_pm_name(i));
|
||||
for (j = i-1; j >= 0; j--) {
|
||||
msm_dss_config_vreg(&pdev->dev,
|
||||
ctrl_pdata->power_data[j].vreg_config,
|
||||
ctrl_pdata->power_data[j].num_vreg, 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
mdss_dsi_labibb_vreg_init(pdev);
|
||||
|
|
|
@ -699,6 +699,7 @@ static int mdss_fb_probe(struct platform_device *pdev)
|
|||
struct mdss_panel_data *pdata;
|
||||
struct fb_info *fbi;
|
||||
int rc;
|
||||
u32 cell_index = 0;
|
||||
|
||||
if (fbi_list_index >= MAX_FBI_LIST)
|
||||
return -ENOMEM;
|
||||
|
@ -707,6 +708,11 @@ static int mdss_fb_probe(struct platform_device *pdev)
|
|||
if (!pdata)
|
||||
return -EPROBE_DEFER;
|
||||
|
||||
of_property_read_u32(pdev->dev.of_node, "cell-index", &cell_index);
|
||||
if (cell_index > fbi_list_index)
|
||||
return -EPROBE_DEFER;
|
||||
|
||||
|
||||
/*
|
||||
* alloc framebuffer info + par data
|
||||
*/
|
||||
|
|
Loading…
Reference in a new issue