Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 5fdbd70e authored by qctecmdr's avatar qctecmdr Committed by Gerrit - the friendly Code Review server
Browse files

Merge "fbdev: msm: Increment commit count during null commit"

parents 75edf721 f467fd7b
Loading
Loading
Loading
Loading
+13 −18
Original line number Diff line number Diff line
@@ -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;
@@ -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));
@@ -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);
+1 −1
Original line number Diff line number Diff line
@@ -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) {