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

Commit 6a555534 authored by Naveen Ramaraj's avatar Naveen Ramaraj Committed by Chandan Uddaraju
Browse files

msm: mdss: Use clock safe wrapper for reading DSI hw version



Attempting to read without proper clock votes will result
in a unclocked access leading to a watchdog. Enable only
the DSI BUS clocks instead of all the DSI clocks while
reading the DSI revision register.

Change-Id: Ia83fda764d145e96d2df813379c57cf6529b1c0c
Signed-off-by: default avatarNaveen Ramaraj <nramaraj@codeaurora.org>
Signed-off-by: default avatarChandan Uddaraju <chandanu@codeaurora.org>
parent 85f074ae
Loading
Loading
Loading
Loading
+8 −6
Original line number Diff line number Diff line
@@ -265,6 +265,9 @@ void mdss_dsi_read_hw_revision(struct mdss_dsi_ctrl_pdata *ctrl)

void mdss_dsi_get_hw_revision(struct mdss_dsi_ctrl_pdata *ctrl)
{
	if (ctrl->shared_data->hw_rev)
		return;

	mdss_dsi_clk_ctrl(ctrl, ctrl->dsi_clk_handle, MDSS_DSI_CORE_CLK,
			  MDSS_DSI_CLK_ON);
	ctrl->shared_data->hw_rev = MIPI_INP(ctrl->ctrl_base);
@@ -1305,7 +1308,7 @@ static int mdss_dsi_cmd_dma_tpg_tx(struct mdss_dsi_ctrl_pdata *ctrl,
					struct dsi_buf *tp)
{
	int len, i, ret = 0, data = 0;
	u32 *bp, ctrl_rev;
	u32 *bp;
	struct mdss_dsi_ctrl_pdata *mctrl = NULL;

	if (tp->len > DMA_TPG_FIFO_LEN) {
@@ -1313,9 +1316,9 @@ static int mdss_dsi_cmd_dma_tpg_tx(struct mdss_dsi_ctrl_pdata *ctrl,
		return -EINVAL;
	}

	ctrl_rev = MIPI_INP(ctrl->ctrl_base);
	mdss_dsi_get_hw_revision(ctrl);

	if (ctrl_rev < MDSS_DSI_HW_REV_103) {
	if (ctrl->shared_data->hw_rev < MDSS_DSI_HW_REV_103) {
		pr_err("CMD DMA TPG not supported for this DSI version\n");
		return -EINVAL;
	}
@@ -2269,7 +2272,6 @@ int mdss_dsi_cmdlist_commit(struct mdss_dsi_ctrl_pdata *ctrl, int from_mdp)
	int ret = -EINVAL;
	int rc = 0;
	bool hs_req = false;
	u32 ctrl_rev;

	if (mdss_get_sd_client_cnt())
		return -EPERM;
@@ -2292,10 +2294,10 @@ int mdss_dsi_cmdlist_commit(struct mdss_dsi_ctrl_pdata *ctrl, int from_mdp)
	/* make sure dsi_cmd_mdp is idle */
	mdss_dsi_cmd_mdp_busy(ctrl);

	ctrl_rev = MIPI_INP(ctrl->ctrl_base);
	mdss_dsi_get_hw_revision(ctrl);

	/* For DSI versions less than 1.3.0, CMD DMA TPG is not supported */
	if (req && (ctrl_rev < MDSS_DSI_HW_REV_103))
	if (req && (ctrl->shared_data->hw_rev < MDSS_DSI_HW_REV_103))
		req->flags &= ~CMD_REQ_DMA_TPG;

	pr_debug("%s: ctrl=%d from_mdp=%d pid=%d\n", __func__,