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

Commit 7d8800fa authored by Aravind Venkateswaran's avatar Aravind Venkateswaran Committed by Gerrit - the friendly Code Review server
Browse files

msm: mdss: dp: increase AUX controller hardware timeout limits



Increase the AUX controller hardware timeout limits to the
maximum value supported. This increases the AUX controller
hardware's robustness in handling transactions in the face
of differing timing from one DisplayPort sink to another.

CRs-Fixed: 2006096
Change-Id: Ia0da13720526a96f3a88a849043a3ffbb1185cf7
Signed-off-by: default avatarAravind Venkateswaran <aravindh@codeaurora.org>
Signed-off-by: default avatarTatenda Chipeperekwa <tatendac@codeaurora.org>
parent f8c32514
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -1907,6 +1907,7 @@ static int mdss_dp_host_init(struct mdss_panel_data *pdata)
	mdss_dp_ctrl_reset(&dp_drv->ctrl_io);
	mdss_dp_phy_reset(&dp_drv->ctrl_io);
	mdss_dp_aux_reset(&dp_drv->ctrl_io);
	mdss_dp_aux_set_limits(&dp_drv->ctrl_io);
	mdss_dp_aux_ctrl(&dp_drv->ctrl_io, true);

	pr_debug("Ctrl_hw_rev =0x%x, phy hw_rev =0x%x\n",
+13 −0
Original line number Diff line number Diff line
@@ -858,6 +858,19 @@ void mdss_dp_setup_tr_unit(struct dss_io_data *ctrl_io, u8 link_rate,
	pr_debug("dp_tu=0x%x\n", dp_tu);
}

void mdss_dp_aux_set_limits(struct dss_io_data *ctrl_io)
{
	u32 const max_aux_timeout_count = 0xFFFFF;
	u32 const max_aux_limits = 0xFFFFFFFF;

	pr_debug("timeout=0x%x, limits=0x%x\n",
			max_aux_timeout_count, max_aux_limits);

	writel_relaxed(max_aux_timeout_count,
			ctrl_io->base + DP_AUX_TIMEOUT_COUNT);
	writel_relaxed(max_aux_limits, ctrl_io->base + DP_AUX_LIMITS);
}

void mdss_dp_ctrl_lane_mapping(struct dss_io_data *ctrl_io, char *l_map)
{
	u8 bits_per_lane = 2;
+3 −0
Original line number Diff line number Diff line
@@ -35,6 +35,8 @@
#define	DP_AUX_CTRL				(0x00000230)
#define	DP_AUX_DATA				(0x00000234)
#define	DP_AUX_TRANS_CTRL			(0x00000238)
#define	DP_AUX_TIMEOUT_COUNT			(0x0000023C)
#define	DP_AUX_LIMITS				(0x00000240)
#define	DP_AUX_STATUS				(0x00000244)

#define DP_DPCD_CP_IRQ				(0x201)
@@ -272,6 +274,7 @@ static const struct dp_vc_tu_mapping_table tu_table[] = {
			0x21, 0x000c, false, 0x00, 0x00, 0x00, 0x27},
};

void mdss_dp_aux_set_limits(struct dss_io_data *ctrl_io);
int dp_aux_read(void *ep, struct edp_cmd *cmds);
int dp_aux_write(void *ep, struct edp_cmd *cmd);
void mdss_dp_state_ctrl(struct dss_io_data *ctrl_io, u32 data);