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

Commit da3b4e04 authored by Sandeep Panda's avatar Sandeep Panda
Browse files

msm: mdss: update MDP QOS remapper settings for 8909



Update MDP3 QOS remapper settings based on panel width.
As per HW design MDP3 fill level depends on panel width.
So for panels with width less than 720 pixels needs to have fill
level of 50% of what the fill level needed for panels with
width greater than equal to 720.

Change-Id: Ibad623aecbfe84edf4fc78526dfe1d18724533bb
Signed-off-by: default avatarSandeep Panda <spanda@codeaurora.org>
parent fa9ad0e8
Loading
Loading
Loading
Loading
+8 −2
Original line number Diff line number Diff line
@@ -953,7 +953,7 @@ int mdp3_dynamic_clock_gating_ctrl(int enable)
	return rc;
}

int mdp3_qos_remapper_setup(void)
int mdp3_qos_remapper_setup(struct mdss_panel_data *panel)
{
	int rc = 0;

@@ -965,12 +965,18 @@ int mdp3_qos_remapper_setup(void)
		return rc;
	}

	if (!panel)
		return -EINVAL;
	/* Program MDP QOS Remapper */
	MDP3_REG_WRITE(MDP3_DMA_P_QOS_REMAPPER, 0x1A9);
	MDP3_REG_WRITE(MDP3_DMA_P_WATERMARK_0, 0x0);
	MDP3_REG_WRITE(MDP3_DMA_P_WATERMARK_1, 0x0);
	MDP3_REG_WRITE(MDP3_DMA_P_WATERMARK_2, 0x0);
	/* PANIC setting depends on panel width*/
	if (panel->panel_info.xres >= 720)
		MDP3_REG_WRITE(MDP3_PANIC_LUT0, 0xFFFF);
	else
		MDP3_REG_WRITE(MDP3_PANIC_LUT0, 0x00FF);
	MDP3_REG_WRITE(MDP3_PANIC_ROBUST_CTRL, 0x1);
	MDP3_REG_WRITE(MDP3_ROBUST_LUT, 0xFF00);

+1 −1
Original line number Diff line number Diff line
@@ -205,7 +205,7 @@ void mdp3_check_dsi_ctrl_status(struct work_struct *work,
				uint32_t interval);
int mdp3_dynamic_clock_gating_ctrl(int enable);
int mdp3_footswitch_ctrl(int enable);
int mdp3_qos_remapper_setup(void);
int mdp3_qos_remapper_setup(struct mdss_panel_data *panel);

#define MDP3_REG_WRITE(addr, val) writel_relaxed(val, mdp3_res->mdp_base + addr)
#define MDP3_REG_READ(addr) readl_relaxed(mdp3_res->mdp_base + addr)
+8 −2
Original line number Diff line number Diff line
@@ -605,7 +605,8 @@ static int mdp3_ctrl_on(struct msm_fb_data_type *mfd)
	mdp3_ctrl_notifier_register(mdp3_session,
		&mdp3_session->mfd->mdp_sync_pt_data.notifier);

	mdp3_qos_remapper_setup();
	panel = mdp3_session->panel;
	mdp3_qos_remapper_setup(panel);
	/* request bus bandwidth before DSI DMA traffic */
	rc = mdp3_ctrl_res_req_bus(mfd, 1);
	if (rc) {
@@ -619,7 +620,12 @@ static int mdp3_ctrl_on(struct msm_fb_data_type *mfd)
		goto on_error;
	}

	panel = mdp3_session->panel;
	rc = mdp3_ctrl_res_req_clk(mfd, 1);
	if (rc) {
		pr_err("fail to request mdp clk resource\n");
		goto on_error;
	}

	if (panel->event_handler) {
		rc = panel->event_handler(panel, MDSS_EVENT_LINK_READY, NULL);
		rc |= panel->event_handler(panel, MDSS_EVENT_UNBLANK, NULL);