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

Commit 9a66efe7 authored by Kuogee Hsieh's avatar Kuogee Hsieh
Browse files

msm: mdss: un map dsi transmit buffer properly



DSi tx buffer is mapped to iommu memory if iommu
attached. Therefore it needs to be iommu un mapped
at end of transmission.

CRs-Fixed: 752164
Change-Id: I2d3edad78c0cd859b5c31b5e2c6d66e5148ccf5f
Signed-off-by: default avatarKuogee Hsieh <khsieh@codeaurora.org>
parent f282b1f2
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -330,6 +330,7 @@ struct mdss_dsi_ctrl_pdata {
	int bklt_max;
	int new_fps;
	int pwm_enabled;
	bool dmap_iommu_map;
	bool panel_bias_vreg;
	bool dsi_irq_line;
	atomic_t te_irq_ready;
+6 −3
Original line number Diff line number Diff line
@@ -1518,6 +1518,7 @@ static int mdss_dsi_cmd_dma_tx(struct mdss_dsi_ctrl_pdata *ctrl,
			pr_err("unable to map dma memory to iommu(%d)\n", ret);
			return -ENOMEM;
		}
		ctrl->dmap_iommu_map = true;
	} else {
		ctrl->dma_addr = tp->dmap;
	}
@@ -1558,19 +1559,21 @@ static int mdss_dsi_cmd_dma_tx(struct mdss_dsi_ctrl_pdata *ctrl,
		ret = tp->len;

	if (mctrl && mctrl->dma_addr) {
		if (ctrl->mdss_util->iommu_attached()) {
		if (mctrl->dmap_iommu_map) {
			msm_iommu_unmap_contig_buffer(mctrl->dma_addr,
			ctrl->mdss_util->get_iommu_domain(domain),
				mctrl->mdss_util->get_iommu_domain(domain),
							0, mctrl->dma_size);
			mctrl->dmap_iommu_map = false;
		}
		mctrl->dma_addr = 0;
		mctrl->dma_size = 0;
	}

	if (ctrl->mdss_util->iommu_attached()) {
	if (ctrl->dmap_iommu_map) {
		msm_iommu_unmap_contig_buffer(ctrl->dma_addr,
			ctrl->mdss_util->get_iommu_domain(domain),
							0, ctrl->dma_size);
		ctrl->dmap_iommu_map = false;
	}

	ctrl->dma_addr = 0;