Loading drivers/video/fbdev/msm/mdss_mdp.h +1 −0 Original line number Diff line number Diff line Loading @@ -933,6 +933,7 @@ struct mdss_mdp_writeback_arg { struct mdss_mdp_wfd; struct mdss_overlay_private { bool vsync_en; ktime_t vsync_time; ktime_t lineptr_time; struct kernfs_node *vsync_event_sd; Loading drivers/video/fbdev/msm/mdss_mdp_overlay.c +11 −1 Original line number Diff line number Diff line Loading @@ -3307,12 +3307,14 @@ int mdss_mdp_overlay_vsync_ctrl(struct msm_fb_data_type *mfd, int en) goto end; } mdp5_data->vsync_en = en; if (!ctl->panel_data->panel_info.cont_splash_enabled && (!mdss_mdp_ctl_is_power_on(ctl) || mdss_panel_is_power_on_ulp(ctl->power_state))) { pr_debug("fb%d vsync pending first update en=%d, ctl power state:%d\n", mfd->index, en, ctl->power_state); rc = -EPERM; rc = 0; goto end; } Loading Loading @@ -5759,6 +5761,13 @@ static int mdss_mdp_overlay_on(struct msm_fb_data_type *mfd) } panel_on: if (mdp5_data->vsync_en) { pr_info("reenabling vsync for fb%d\n", mfd->index); mdss_mdp_clk_ctrl(MDP_BLOCK_POWER_ON); rc = ctl->ops.add_vsync_handler(ctl, &ctl->vsync_handler); mdss_mdp_clk_ctrl(MDP_BLOCK_POWER_OFF); } if (IS_ERR_VALUE(rc)) { pr_err("Failed to turn on fb%d\n", mfd->index); mdss_mdp_overlay_off(mfd); Loading Loading @@ -6600,6 +6609,7 @@ int mdss_mdp_overlay_init(struct msm_fb_data_type *mfd) } } mfd->mdp_sync_pt_data.async_wait_fences = true; mdp5_data->vsync_en = false; pm_runtime_set_suspended(&mfd->pdev->dev); pm_runtime_enable(&mfd->pdev->dev); Loading Loading
drivers/video/fbdev/msm/mdss_mdp.h +1 −0 Original line number Diff line number Diff line Loading @@ -933,6 +933,7 @@ struct mdss_mdp_writeback_arg { struct mdss_mdp_wfd; struct mdss_overlay_private { bool vsync_en; ktime_t vsync_time; ktime_t lineptr_time; struct kernfs_node *vsync_event_sd; Loading
drivers/video/fbdev/msm/mdss_mdp_overlay.c +11 −1 Original line number Diff line number Diff line Loading @@ -3307,12 +3307,14 @@ int mdss_mdp_overlay_vsync_ctrl(struct msm_fb_data_type *mfd, int en) goto end; } mdp5_data->vsync_en = en; if (!ctl->panel_data->panel_info.cont_splash_enabled && (!mdss_mdp_ctl_is_power_on(ctl) || mdss_panel_is_power_on_ulp(ctl->power_state))) { pr_debug("fb%d vsync pending first update en=%d, ctl power state:%d\n", mfd->index, en, ctl->power_state); rc = -EPERM; rc = 0; goto end; } Loading Loading @@ -5759,6 +5761,13 @@ static int mdss_mdp_overlay_on(struct msm_fb_data_type *mfd) } panel_on: if (mdp5_data->vsync_en) { pr_info("reenabling vsync for fb%d\n", mfd->index); mdss_mdp_clk_ctrl(MDP_BLOCK_POWER_ON); rc = ctl->ops.add_vsync_handler(ctl, &ctl->vsync_handler); mdss_mdp_clk_ctrl(MDP_BLOCK_POWER_OFF); } if (IS_ERR_VALUE(rc)) { pr_err("Failed to turn on fb%d\n", mfd->index); mdss_mdp_overlay_off(mfd); Loading Loading @@ -6600,6 +6609,7 @@ int mdss_mdp_overlay_init(struct msm_fb_data_type *mfd) } } mfd->mdp_sync_pt_data.async_wait_fences = true; mdp5_data->vsync_en = false; pm_runtime_set_suspended(&mfd->pdev->dev); pm_runtime_enable(&mfd->pdev->dev); Loading