Loading drivers/video/fbdev/msm/mdss_fb.c +13 −18 Original line number Diff line number Diff line Loading @@ -3687,6 +3687,19 @@ static int __mdss_fb_perform_commit(struct msm_fb_data_type *mfd) int ret = -ENOTSUPP; u32 new_dsi_mode, dynamic_dsi_switch = 0; if (mfd->panel_info->panel_dead) { pr_debug("Panel dead, Signal fence and exit commit\n"); /* * In case of ESD attack, return early from commit * after signalling fences. */ mdss_fb_release_kickoff(mfd); mdss_fb_signal_timeline(sync_pt_data); if ((mfd->panel.type == MIPI_CMD_PANEL) && (mfd->mdp.signal_retire_fence)) mfd->mdp.signal_retire_fence(mfd, 1); return ret; } if (!sync_pt_data->async_wait_fences) mdss_fb_wait_for_fence(sync_pt_data); sync_pt_data->flushed = false; Loading Loading @@ -4657,7 +4670,6 @@ static int mdss_fb_atomic_commit_ioctl(struct fb_info *info, struct mdp_destination_scaler_data *ds_data = NULL; struct mdp_destination_scaler_data __user *ds_data_user; struct msm_fb_data_type *mfd; struct mdss_overlay_private *mdp5_data = NULL; struct mdss_data_type *mdata; ret = copy_from_user(&commit, argp, sizeof(struct mdp_layer_commit)); Loading @@ -4670,23 +4682,6 @@ static int mdss_fb_atomic_commit_ioctl(struct fb_info *info, if (!mfd) return -EINVAL; mdp5_data = mfd_to_mdp5_data(mfd); if (mfd->panel_info->panel_dead) { pr_debug("early commit return\n"); MDSS_XLOG(mfd->panel_info->panel_dead); /* * In case of an ESD attack, since we early return from the * commits, we need to signal the outstanding fences. */ mdss_fb_release_fences(mfd); if ((mfd->panel.type == MIPI_CMD_PANEL) && mfd->mdp.signal_retire_fence && mdp5_data) mfd->mdp.signal_retire_fence(mfd, mdp5_data->retire_cnt); return 0; } output_layer_user = commit.commit_v1.output_layer; if (output_layer_user) { buffer_size = sizeof(struct mdp_output_layer); Loading drivers/video/fbdev/msm/mdss_mdp_overlay.c +1 −1 Original line number Diff line number Diff line Loading @@ -5899,7 +5899,7 @@ static int mdss_mdp_overlay_off(struct msm_fb_data_type *mfd) pr_debug("cleaning up pipes on fb%d\n", mfd->index); if (mdata->handoff_pending) mdp5_data->allow_kickoff = true; atomic_inc(&mfd->mdp_sync_pt_data.commit_cnt); mdss_mdp_overlay_kickoff(mfd, NULL); } else if (!mdss_mdp_ctl_is_power_on(mdp5_data->ctl)) { if (mfd->panel_reconfig) { Loading Loading
drivers/video/fbdev/msm/mdss_fb.c +13 −18 Original line number Diff line number Diff line Loading @@ -3687,6 +3687,19 @@ static int __mdss_fb_perform_commit(struct msm_fb_data_type *mfd) int ret = -ENOTSUPP; u32 new_dsi_mode, dynamic_dsi_switch = 0; if (mfd->panel_info->panel_dead) { pr_debug("Panel dead, Signal fence and exit commit\n"); /* * In case of ESD attack, return early from commit * after signalling fences. */ mdss_fb_release_kickoff(mfd); mdss_fb_signal_timeline(sync_pt_data); if ((mfd->panel.type == MIPI_CMD_PANEL) && (mfd->mdp.signal_retire_fence)) mfd->mdp.signal_retire_fence(mfd, 1); return ret; } if (!sync_pt_data->async_wait_fences) mdss_fb_wait_for_fence(sync_pt_data); sync_pt_data->flushed = false; Loading Loading @@ -4657,7 +4670,6 @@ static int mdss_fb_atomic_commit_ioctl(struct fb_info *info, struct mdp_destination_scaler_data *ds_data = NULL; struct mdp_destination_scaler_data __user *ds_data_user; struct msm_fb_data_type *mfd; struct mdss_overlay_private *mdp5_data = NULL; struct mdss_data_type *mdata; ret = copy_from_user(&commit, argp, sizeof(struct mdp_layer_commit)); Loading @@ -4670,23 +4682,6 @@ static int mdss_fb_atomic_commit_ioctl(struct fb_info *info, if (!mfd) return -EINVAL; mdp5_data = mfd_to_mdp5_data(mfd); if (mfd->panel_info->panel_dead) { pr_debug("early commit return\n"); MDSS_XLOG(mfd->panel_info->panel_dead); /* * In case of an ESD attack, since we early return from the * commits, we need to signal the outstanding fences. */ mdss_fb_release_fences(mfd); if ((mfd->panel.type == MIPI_CMD_PANEL) && mfd->mdp.signal_retire_fence && mdp5_data) mfd->mdp.signal_retire_fence(mfd, mdp5_data->retire_cnt); return 0; } output_layer_user = commit.commit_v1.output_layer; if (output_layer_user) { buffer_size = sizeof(struct mdp_output_layer); Loading
drivers/video/fbdev/msm/mdss_mdp_overlay.c +1 −1 Original line number Diff line number Diff line Loading @@ -5899,7 +5899,7 @@ static int mdss_mdp_overlay_off(struct msm_fb_data_type *mfd) pr_debug("cleaning up pipes on fb%d\n", mfd->index); if (mdata->handoff_pending) mdp5_data->allow_kickoff = true; atomic_inc(&mfd->mdp_sync_pt_data.commit_cnt); mdss_mdp_overlay_kickoff(mfd, NULL); } else if (!mdss_mdp_ctl_is_power_on(mdp5_data->ctl)) { if (mfd->panel_reconfig) { Loading