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

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

Merge "msm: mdss: cancel clk_off_work during commit and blit"

parents e4f0926a 992a053c
Loading
Loading
Loading
Loading
+13 −0
Original line number Diff line number Diff line
@@ -194,6 +194,12 @@ static void mdp3_dispatch_clk_off(struct work_struct *work)
		return;
	}

	if (!session->clk_on) {
		mutex_unlock(&session->lock);
		pr_debug("%s: Clk shut down is done\n", __func__);
		MDSS_XLOG(XLOG_FUNC_EXIT, __LINE__);
		return;
	}
	if (session->intf->active) {
retry_dma_done:
		rc = wait_for_completion_timeout(&session->dma_completion,
@@ -208,6 +214,7 @@ retry_dma_done:
				if (--retry_count) {
					pr_err("dmap is busy, retry %d\n",
						retry_count);
					MDSS_XLOG(__LINE__, retry_count);
					goto retry_dma_done;
				}
				pr_err("dmap is still busy, bug_on\n");
@@ -1049,6 +1056,7 @@ static int mdp3_ctrl_off(struct msm_fb_data_type *mfd)
	panel = mdp3_session->panel;
	mutex_lock(&mdp3_session->lock);

	cancel_work_sync(&mdp3_session->clk_off_work);
	pr_debug("Requested power state = %d\n", mfd->panel_power_state);
	if (mdss_fb_is_power_on_lp(mfd)) {
		/*
@@ -1520,6 +1528,7 @@ static int mdp3_ctrl_display_commit_kickoff(struct msm_fb_data_type *mfd,
	mdp3_ctrl_notify(mdp3_session, MDP_NOTIFY_FRAME_BEGIN);
	data = mdp3_bufq_pop(&mdp3_session->bufq_in);
	if (data) {
		cancel_work_sync(&mdp3_session->clk_off_work);
		mdp3_ctrl_reset_countdown(mdp3_session, mfd);
		mdp3_ctrl_clk_enable(mfd, 1);
		stride = mdp3_session->dma->source_config.stride;
@@ -2757,6 +2766,8 @@ static int mdp3_ctrl_ioctl_handler(struct msm_fb_data_type *mfd,
		}
		mutex_unlock(&mdp3_res->fs_idle_pc_lock);
		rc = mdp3_ctrl_async_blit_req(mfd, argp);
		if (!rc)
			cancel_work_sync(&mdp3_session->clk_off_work);
		break;
	case MSMFB_BLIT:
		mutex_lock(&mdp3_res->fs_idle_pc_lock);
@@ -2764,6 +2775,8 @@ static int mdp3_ctrl_ioctl_handler(struct msm_fb_data_type *mfd,
			mdp3_ctrl_reset(mfd);
		mutex_unlock(&mdp3_res->fs_idle_pc_lock);
		rc = mdp3_ctrl_blit_req(mfd, argp);
		if (!rc)
			cancel_work_sync(&mdp3_session->clk_off_work);
		break;
	case MSMFB_METADATA_GET:
		rc = copy_from_user(&metadata, argp, sizeof(metadata));