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: Kuogee Hsieh <khsieh@codeaurora.org>
This commit is contained in:
parent
475788307f
commit
02ce0808d3
2 changed files with 8 additions and 4 deletions
|
@ -1,4 +1,4 @@
|
|||
/* Copyright (c) 2012-2014, The Linux Foundation. All rights reserved.
|
||||
/* Copyright (c) 2012-2015, The Linux Foundation. All rights reserved.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 and
|
||||
|
@ -334,6 +334,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;
|
||||
|
|
|
@ -1528,6 +1528,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;
|
||||
}
|
||||
|
@ -1568,19 +1569,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;
|
||||
|
|
Loading…
Add table
Reference in a new issue