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>
This commit is contained in:
Veera Sundaram Sankaran 2016-09-23 11:13:18 -07:00
parent ab26d09879
commit 65320067b4

View file

@ -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},