diff mbox

[2/5] soc: qcom: smem: Use write-combine remap for SMEM

Message ID 1459226126-16725-2-git-send-email-bjorn.andersson@linaro.org
State Accepted
Commit afd356dfb3a4127b61a3519802a4db9046703724
Headers show

Commit Message

Bjorn Andersson March 29, 2016, 4:35 a.m. UTC
Mapping the SMEM region as write combine makes the contiguous writes
in SMD perform better and also allows us to do unaligned read and writes
on ARM64.

Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>

---
 drivers/soc/qcom/smem.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

-- 
2.5.0

--
To unsubscribe from this list: send the line "unsubscribe linux-arm-msm" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Comments

Andy Gross March 31, 2016, 6:28 p.m. UTC | #1
On Mon, Mar 28, 2016 at 09:35:23PM -0700, Bjorn Andersson wrote:
> Mapping the SMEM region as write combine makes the contiguous writes

> in SMD perform better and also allows us to do unaligned read and writes

> on ARM64.

> 

> Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>


Nice.  This should make things work much better.  The mappings should have been
writecombine from the get go.

Reviewed-by: Andy Gross <andy.gross@linaro.org>

--
To unsubscribe from this list: send the line "unsubscribe linux-arm-msm" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/drivers/soc/qcom/smem.c b/drivers/soc/qcom/smem.c
index 19019aa092e8..2e1aa9f130f4 100644
--- a/drivers/soc/qcom/smem.c
+++ b/drivers/soc/qcom/smem.c
@@ -684,8 +684,7 @@  static int qcom_smem_map_memory(struct qcom_smem *smem, struct device *dev,
 
 	smem->regions[i].aux_base = (u32)r.start;
 	smem->regions[i].size = resource_size(&r);
-	smem->regions[i].virt_base = devm_ioremap_nocache(dev, r.start,
-							  resource_size(&r));
+	smem->regions[i].virt_base = devm_ioremap_wc(dev, r.start, resource_size(&r));
 	if (!smem->regions[i].virt_base)
 		return -ENOMEM;