Merge "mdss: mdp3: enhance vsync event report for mdp3"
diff --git a/drivers/video/msm/mdss/mdp3_ctrl.c b/drivers/video/msm/mdss/mdp3_ctrl.c
index dd13dd5..6219737 100644
--- a/drivers/video/msm/mdss/mdp3_ctrl.c
+++ b/drivers/video/msm/mdss/mdp3_ctrl.c
@@ -178,7 +178,7 @@
* active or when dsi clocks are currently off
*/
if (enable && mdp3_session->status == 1
- && !mdp3_session->intf->active) {
+ && mdp3_session->vsync_before_commit) {
mod_timer(&mdp3_session->vsync_timer,
jiffies + msecs_to_jiffies(mdp3_session->vsync_period));
} else if (enable && !mdp3_session->clk_on) {
@@ -194,7 +194,7 @@
void mdp3_vsync_timer_func(unsigned long arg)
{
struct mdp3_session_data *session = (struct mdp3_session_data *)arg;
- if (session->status == 1 && !session->intf->active) {
+ if (session->status == 1 && session->vsync_before_commit) {
pr_debug("mdp3_vsync_timer_func trigger\n");
vsync_notify_handler(session);
mod_timer(&session->vsync_timer,
@@ -976,6 +976,8 @@
msleep(1000 / panel_info->mipi.frame_rate);
mdp3_session->first_commit = false;
}
+
+ mdp3_session->vsync_before_commit = 0;
if (reset_done && (panel && panel->set_backlight))
panel->set_backlight(panel, panel->panel_info.bl_max);
@@ -1046,6 +1048,8 @@
mdp3_session->first_commit = false;
}
+ mdp3_session->vsync_before_commit = 0;
+
pan_error:
mutex_unlock(&mdp3_session->lock);
}
@@ -1712,6 +1716,7 @@
if (mdp3_get_cont_spash_en())
mdp3_session->clk_on = 1;
+ mdp3_session->vsync_before_commit = true;
init_done:
if (IS_ERR_VALUE(rc))
kfree(mdp3_session);
diff --git a/drivers/video/msm/mdss/mdp3_ctrl.h b/drivers/video/msm/mdss/mdp3_ctrl.h
index 8d7627e..f2484ef 100644
--- a/drivers/video/msm/mdss/mdp3_ctrl.h
+++ b/drivers/video/msm/mdss/mdp3_ctrl.h
@@ -53,6 +53,7 @@
struct mutex histo_lock;
int lut_sel;
int cc_vect_sel;
+ bool vsync_before_commit;
bool first_commit;
int clk_on;