diff options
| author | Veera Sundaram Sankaran <veeras@codeaurora.org> | 2016-09-23 11:13:18 -0700 |
|---|---|---|
| committer | Veera Sundaram Sankaran <veeras@codeaurora.org> | 2016-09-23 18:14:06 -0700 |
| commit | 65320067b4b213e6cc6c04d5f1292b0de496ed64 (patch) | |
| tree | d58d919d17e31f5d7c709e1ba5f690cc07469a21 /drivers/video/fbdev | |
| parent | ab26d098793adbf90b77d414663e34ac0c7315f6 (diff) | |
msm: mdss: increase SMMU mapping range for all context banks
Currently, due to the optimizations made in SMMU with the use of
lazy map/unmap, mapped address would be totally released only when
the buffer is freed and not during the last unmap. So, if app buffers
ends up holding 1G memory due to any reason, it would result in
mapping issues in driver as SMMU still holds reference for all the
1G buffers though it was unmapped from MDP perspective. Increase the
SMMU mapping range to avoid such cases.
Change-Id: I6c28e0fe752fba3f4674b6b5ba454fce5b6e7665
Signed-off-by: Veera Sundaram Sankaran <veeras@codeaurora.org>
Diffstat (limited to 'drivers/video/fbdev')
| -rw-r--r-- | drivers/video/fbdev/msm/mdss_smmu.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/drivers/video/fbdev/msm/mdss_smmu.c b/drivers/video/fbdev/msm/mdss_smmu.c index 9a00eff9ade9..b5da4ad1a86b 100644 --- a/drivers/video/fbdev/msm/mdss_smmu.c +++ b/drivers/video/fbdev/msm/mdss_smmu.c @@ -36,6 +36,8 @@ #include "mdss_smmu.h" #include "mdss_debug.h" +#define SZ_4G 0xF0000000 + static DEFINE_MUTEX(mdp_iommu_lock); void mdss_iommu_lock(void) @@ -536,13 +538,13 @@ int mdss_smmu_init(struct mdss_data_type *mdata, struct device *dev) } static struct mdss_smmu_domain mdss_mdp_unsec = { - "mdp_0", MDSS_IOMMU_DOMAIN_UNSECURE, SZ_128K, (SZ_1G - SZ_128K)}; + "mdp_0", MDSS_IOMMU_DOMAIN_UNSECURE, SZ_128K, (SZ_4G - SZ_128K)}; static struct mdss_smmu_domain mdss_rot_unsec = { - NULL, MDSS_IOMMU_DOMAIN_ROT_UNSECURE, SZ_128K, (SZ_1G - SZ_128K)}; + NULL, MDSS_IOMMU_DOMAIN_ROT_UNSECURE, SZ_128K, (SZ_4G - SZ_128K)}; static struct mdss_smmu_domain mdss_mdp_sec = { - "mdp_1", MDSS_IOMMU_DOMAIN_SECURE, SZ_1G, SZ_2G}; + "mdp_1", MDSS_IOMMU_DOMAIN_SECURE, SZ_128K, (SZ_4G - SZ_128K)}; static struct mdss_smmu_domain mdss_rot_sec = { - NULL, MDSS_IOMMU_DOMAIN_ROT_SECURE, SZ_1G, SZ_2G}; + NULL, MDSS_IOMMU_DOMAIN_ROT_SECURE, SZ_128K, (SZ_4G - SZ_128K)}; static const struct of_device_id mdss_smmu_dt_match[] = { { .compatible = "qcom,smmu_mdp_unsec", .data = &mdss_mdp_unsec}, |
