msm: mdss: Start ESD BTA status check after unblank done
BTA status check currently is invoked as soon as ESD thread starts. In some cases, this BTA status check might fail as unblank is not yet performed and panel is not on. Hence delay BTA status check start till unblank is completed. Change-Id: Ic752866cc679438fb2ccffede660c29e9597d01e Signed-off-by: Jayant Shekhar <jshekhar@codeaurora.org>
This commit is contained in:
parent
407b84d154
commit
f283ba88e6
4 changed files with 12 additions and 7 deletions
|
@ -118,6 +118,14 @@ void mdss_check_dsi_ctrl_status(struct work_struct *work, uint32_t interval)
|
|||
return;
|
||||
}
|
||||
|
||||
if (!pdata->panel_info.esd_rdy) {
|
||||
pr_warn("%s: unblank not complete, reschedule check status\n",
|
||||
__func__);
|
||||
schedule_delayed_work(&pstatus_data->check_status,
|
||||
msecs_to_jiffies(interval));
|
||||
return;
|
||||
}
|
||||
|
||||
mdp5_data = mfd_to_mdp5_data(pstatus_data->mfd);
|
||||
ctl = mfd_to_ctl(pstatus_data->mfd);
|
||||
|
||||
|
@ -126,13 +134,6 @@ void mdss_check_dsi_ctrl_status(struct work_struct *work, uint32_t interval)
|
|||
return;
|
||||
}
|
||||
|
||||
if (ctl->power_state == MDSS_PANEL_POWER_OFF) {
|
||||
schedule_delayed_work(&pstatus_data->check_status,
|
||||
msecs_to_jiffies(interval));
|
||||
pr_debug("%s: ctl not powered on\n", __func__);
|
||||
return;
|
||||
}
|
||||
|
||||
if (ctrl_pdata->status_mode == ESD_TE) {
|
||||
mdss_check_te_status(ctrl_pdata, pstatus_data, interval);
|
||||
return;
|
||||
|
|
|
@ -1345,6 +1345,7 @@ static int mdss_dsi_event_handler(struct mdss_panel_data *pdata,
|
|||
ctrl_pdata->ctrl_state |= CTRL_STATE_MDP_ACTIVE;
|
||||
if (ctrl_pdata->on_cmds.link_state == DSI_HS_MODE)
|
||||
rc = mdss_dsi_unblank(pdata);
|
||||
pdata->panel_info.esd_rdy = true;
|
||||
break;
|
||||
case MDSS_EVENT_BLANK:
|
||||
power_state = (int) (unsigned long) arg;
|
||||
|
@ -1353,6 +1354,7 @@ static int mdss_dsi_event_handler(struct mdss_panel_data *pdata,
|
|||
break;
|
||||
case MDSS_EVENT_PANEL_OFF:
|
||||
power_state = (int) (unsigned long) arg;
|
||||
pdata->panel_info.esd_rdy = false;
|
||||
ctrl_pdata->ctrl_state &= ~CTRL_STATE_MDP_ACTIVE;
|
||||
if (ctrl_pdata->off_cmds.link_state == DSI_LP_MODE)
|
||||
rc = mdss_dsi_blank(pdata, power_state);
|
||||
|
|
|
@ -1789,6 +1789,7 @@ int mdss_dsi_panel_init(struct device_node *node,
|
|||
|
||||
pinfo->dynamic_switch_pending = false;
|
||||
pinfo->is_lpm_mode = false;
|
||||
pinfo->esd_rdy = false;
|
||||
|
||||
ctrl_pdata->on = mdss_dsi_panel_on;
|
||||
ctrl_pdata->off = mdss_dsi_panel_off;
|
||||
|
|
|
@ -407,6 +407,7 @@ struct mdss_panel_info {
|
|||
u32 max_fps;
|
||||
|
||||
u32 cont_splash_enabled;
|
||||
bool esd_rdy;
|
||||
u32 partial_update_enabled;
|
||||
u32 dcs_cmd_by_left;
|
||||
u32 partial_update_roi_merge;
|
||||
|
|
Loading…
Add table
Reference in a new issue