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

Commit 2d493f1b authored by Linux Build Service Account's avatar Linux Build Service Account Committed by Gerrit - the friendly Code Review server
Browse files

Merge "Revert "msm: mdss: avoid kickoff wait during validation phase""

parents 866fbc1d 86aacf77
Loading
Loading
Loading
Loading
+0 −1
Original line number Diff line number Diff line
@@ -3048,7 +3048,6 @@ int mdp3_ctrl_init(struct msm_fb_data_type *mfd)
		goto init_done;
	}

	mfd->skip_koff_wait = true;
	mdp3_session->dma->output_config.out_sel = intf_type;
	mdp3_session->mfd = mfd;
	mdp3_session->panel = dev_get_platdata(&mfd->pdev->dev);
+34 −30
Original line number Diff line number Diff line
@@ -3356,7 +3356,7 @@ int mdss_fb_atomic_commit(struct fb_info *info,
{
	struct msm_fb_data_type *mfd = (struct msm_fb_data_type *)info->par;
	struct mdp_layer_commit_v1 *commit_v1;
	struct mdp_output_layer *output_layer;
	struct mdp_output_layer output_layer;
	struct mdss_panel_info *pinfo;
	bool wait_for_finish, wb_change = false;
	int ret = -EPERM;
@@ -3388,37 +3388,41 @@ int mdss_fb_atomic_commit(struct fb_info *info,

	commit_v1 = &commit->commit_v1;
	if (commit_v1->flags & MDP_VALIDATE_LAYER) {
		if (!mfd->skip_koff_wait) {
		ret = mdss_fb_wait_for_kickoff(mfd);
		if (ret) {
			pr_err("wait for kickoff failed\n");
				goto end;
			}
		}
		} else {
			__ioctl_transition_dyn_mode_state(mfd,
				MSMFB_ATOMIC_COMMIT, true, false);
			if (mfd->panel.type == WRITEBACK_PANEL) {
			output_layer = (struct mdp_output_layer *)
					commit_v1->output_layer;
			if (!output_layer) {
				if (!commit_v1->output_layer) {
					pr_err("Output layer is null\n");
					goto end;
				}
				ret = copy_from_user(&output_layer,
				commit_v1->output_layer, sizeof(output_layer));
				if (ret) {
					pr_err("output_layer copy from user failed\n");
					goto end;
				}


				wb_change = !mdss_fb_is_wb_config_same(mfd,
					output_layer);
						&output_layer);
				if (wb_change) {
					old_xres = pinfo->xres;
					old_yres = pinfo->yres;
					old_format = mfd->fb_imgType;
					mdss_fb_update_resolution(mfd,
					output_layer->buffer.width,
					output_layer->buffer.height,
					output_layer->buffer.format);
						output_layer.buffer.width,
						output_layer.buffer.height,
						output_layer.buffer.format);
				}
			}
			ret = mfd->mdp.atomic_validate(mfd, file, commit_v1);
			if (!ret)
				mfd->atomic_commit_pending = true;
		}
		goto end;
	} else {
		ret = mdss_fb_pan_idle(mfd);
+0 −1
Original line number Diff line number Diff line
@@ -358,7 +358,6 @@ struct msm_fb_data_type {
	bool mdss_fb_split_stored;

	u32 wait_for_kickoff;
	u32 skip_koff_wait;
	u32 thermal_level;

	int fb_mmap_type;