Loading drivers/video/fbdev/msm/mdss_fb.c +13 −21 Original line number Diff line number Diff line Loading @@ -3704,6 +3704,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 @@ -4583,7 +4596,6 @@ static int mdss_fb_atomic_commit_ioctl(struct fb_info *info, struct mdp_frc_info *frc_info = NULL; struct mdp_frc_info __user *frc_info_user; struct msm_fb_data_type *mfd; struct mdss_overlay_private *mdp5_data = NULL; ret = copy_from_user(&commit, argp, sizeof(struct mdp_layer_commit)); if (ret) { Loading @@ -4595,26 +4607,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. */ mutex_lock(&mfd->mdp_sync_pt_data.sync_mutex); atomic_inc(&mfd->mdp_sync_pt_data.commit_cnt); mutex_unlock(&mfd->mdp_sync_pt_data.sync_mutex); 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 Loading
drivers/video/fbdev/msm/mdss_fb.c +13 −21 Original line number Diff line number Diff line Loading @@ -3704,6 +3704,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 @@ -4583,7 +4596,6 @@ static int mdss_fb_atomic_commit_ioctl(struct fb_info *info, struct mdp_frc_info *frc_info = NULL; struct mdp_frc_info __user *frc_info_user; struct msm_fb_data_type *mfd; struct mdss_overlay_private *mdp5_data = NULL; ret = copy_from_user(&commit, argp, sizeof(struct mdp_layer_commit)); if (ret) { Loading @@ -4595,26 +4607,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. */ mutex_lock(&mfd->mdp_sync_pt_data.sync_mutex); atomic_inc(&mfd->mdp_sync_pt_data.commit_cnt); mutex_unlock(&mfd->mdp_sync_pt_data.sync_mutex); 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