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

Commit 78130405 authored by Jeykumar Sankaran's avatar Jeykumar Sankaran
Browse files

Revert "msm: mdss: fix boot-up issues with splash thread enabled"



This reverts commit c9d48a35.

This change was pulled in as part of batch merge from different
branch. This change is not ready to be merged in the current
branch.

Conflicts:
	drivers/video/msm/mdss/mdss_mdp.c

Signed-off-by: default avatarJeykumar Sankaran <jsanka@codeaurora.org>
Change-Id: I49c1ee680aa489f251c7bfb56d9c56ba86d5a5fc
parent 6909fa94
Loading
Loading
Loading
Loading
+8 −7
Original line number Diff line number Diff line
@@ -173,9 +173,6 @@ static int mdss_mdp_parse_dt_misc(struct platform_device *pdev);
static int mdss_mdp_parse_dt_ad_cfg(struct platform_device *pdev);
static int mdss_mdp_parse_dt_bus_scale(struct platform_device *pdev);
static int mdss_mdp_parse_dt_ppb_off(struct platform_device *pdev);
static int mdss_iommu_attach(struct mdss_data_type *mdata);
static int mdss_iommu_dettach(struct mdss_data_type *mdata);

/**
 * mdss_mdp_vbif_axi_halt() - Halt MDSS AXI ports
 * @mdata: pointer to the global mdss data structure.
@@ -672,7 +669,11 @@ int mdss_iommu_ctrl(int enable)
		__builtin_return_address(0), enable, mdata->iommu_ref_cnt);

	if (enable) {
		if (mdata->iommu_ref_cnt == 0) {
		/*
		 * delay iommu attach until continous splash screen has
		 * finished handoff, as it may still be working with phys addr
		 */
		if (!mdata->iommu_attached && !mdata->handoff_pending) {
			if (mdata->needs_iommu_bw_vote)
				mdss_bus_scale_set_quota(MDSS_HW_IOMMU,
					SZ_1M, SZ_1M);
@@ -973,7 +974,7 @@ static int mdss_mdp_irq_clk_setup(struct mdss_data_type *mdata)
	return 0;
}

static int mdss_iommu_attach(struct mdss_data_type *mdata)
int mdss_iommu_attach(struct mdss_data_type *mdata)
{
	struct iommu_domain *domain;
	struct mdss_iommu_map_type *iomap;
@@ -1012,7 +1013,7 @@ end:
	return rc;
}

static int mdss_iommu_dettach(struct mdss_data_type *mdata)
int mdss_iommu_dettach(struct mdss_data_type *mdata)
{
	struct iommu_domain *domain;
	struct mdss_iommu_map_type *iomap;
@@ -1042,7 +1043,7 @@ static int mdss_iommu_dettach(struct mdss_data_type *mdata)
	return 0;
}

static int mdss_iommu_init(struct mdss_data_type *mdata)
int mdss_iommu_init(struct mdss_data_type *mdata)
{
	struct msm_iova_layout layout;
	struct iommu_domain *domain;
+2 −0
Original line number Diff line number Diff line
@@ -819,6 +819,8 @@ static inline u32 left_lm_w_from_mfd(struct msm_fb_data_type *mfd)
}

irqreturn_t mdss_mdp_isr(int irq, void *ptr);
int mdss_iommu_attach(struct mdss_data_type *mdata);
int mdss_iommu_dettach(struct mdss_data_type *mdata);
void mdss_mdp_irq_clear(struct mdss_data_type *mdata,
		u32 intr_type, u32 intf_num);
int mdss_mdp_irq_enable(u32 intr_type, u32 intf_num);
+10 −14
Original line number Diff line number Diff line
@@ -1294,12 +1294,10 @@ int mdss_mdp_overlay_start(struct msm_fb_data_type *mfd)
	struct mdss_data_type *mdata = mdss_mdp_get_mdata();
	struct mdss_mdp_ctl *ctl = mdp5_data->ctl;

	pr_debug("starting fb%d overlay called from %pS\n", mfd->index,
		__builtin_return_address(0));

	if (mdss_mdp_ctl_is_power_on(ctl)) {
		if (!mdp5_data->mdata->batfet)
			mdss_mdp_batfet_ctrl(mdp5_data->mdata, true);
		mdss_mdp_release_splash_pipe(mfd);
		return 0;
	} else if (mfd->panel_info->cont_splash_enabled) {
		mutex_lock(&mdp5_data->list_lock);
@@ -1697,18 +1695,19 @@ int mdss_mdp_overlay_kickoff(struct msm_fb_data_type *mfd,
	ret = mdss_mdp_overlay_start(mfd);
	if (ret) {
		pr_err("unable to start overlay %d (%d)\n", mfd->index, ret);
		goto unlock_exit;
	}

	if (!mdss_mdp_ctl_is_power_on(ctl)) {
		pr_debug("ctl is not powerd on. skip kickoff\n");
		goto unlock_exit;
		mutex_unlock(&mdp5_data->ov_lock);
		if (ctl->shared_lock)
			mutex_unlock(ctl->shared_lock);
		return ret;
	}

	ret = mdss_iommu_ctrl(1);
	if (IS_ERR_VALUE(ret)) {
		pr_err("iommu attach failed rc=%d\n", ret);
		goto unlock_exit;
		mutex_unlock(&mdp5_data->ov_lock);
		if (ctl->shared_lock)
			mutex_unlock(ctl->shared_lock);
		return ret;
	}
	mutex_lock(&mdp5_data->list_lock);

@@ -1873,11 +1872,10 @@ commit_fail:
	if (!mdp5_data->kickoff_released)
		mdss_mdp_ctl_notify(ctl, MDP_NOTIFY_FRAME_CTX_DONE);

	mdss_iommu_ctrl(0);
unlock_exit:
	mutex_unlock(&mdp5_data->ov_lock);
	if (ctl->shared_lock)
		mutex_unlock(ctl->shared_lock);
	mdss_iommu_ctrl(0);
	ATRACE_END(__func__);

	return ret;
@@ -2115,8 +2113,6 @@ static int mdss_mdp_overlay_play(struct msm_fb_data_type *mfd,
		goto done;
	}

	mdss_mdp_release_splash_pipe(mfd);

	if (req->id & MDSS_MDP_ROT_SESSION_MASK) {
		ret = mdss_mdp_rotator_play(mfd, req);
	} else if (req->id == BORDERFILL_NDX) {