summaryrefslogtreecommitdiff
path: root/drivers/platform
diff options
context:
space:
mode:
authorHamad Kadmany <hkadmany@codeaurora.org>2016-02-06 14:53:47 +0200
committerDavid Keitel <dkeitel@codeaurora.org>2016-03-23 19:57:53 -0700
commitffac72e679382587bca3ae2264938b40e8465ffc (patch)
treeccb5adc054d49454be288458ad656b9cd3e51fc3 /drivers/platform
parentd01e7b60175adeb5cc525bd170cdfb24fc73c191 (diff)
msm_11ad: Set atomic attribute to SMMU driver
Set DOMAIN_ATTR_ATOMIC attribute to SMMU driver so that it can handle DMA map/unmap operations from atomic context which is required by 11ad driver Change-Id: I7e538e6c41e5f40ff01dcfc9cbecf860ded22057 Signed-off-by: Hamad Kadmany <hkadmany@codeaurora.org> Signed-off-by: Maya Erez <merez@codeaurora.org>
Diffstat (limited to 'drivers/platform')
-rw-r--r--drivers/platform/msm/msm_11ad/msm_11ad.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/drivers/platform/msm/msm_11ad/msm_11ad.c b/drivers/platform/msm/msm_11ad/msm_11ad.c
index df0252726485..26d225f04111 100644
--- a/drivers/platform/msm/msm_11ad/msm_11ad.c
+++ b/drivers/platform/msm/msm_11ad/msm_11ad.c
@@ -126,6 +126,7 @@ static int ops_resume(void *handle)
static int msm_11ad_smmu_init(struct msm11ad_ctx *ctx)
{
int disable_htw = 1;
+ int atomic_ctx = 1;
int rc;
if (!ctx->use_smmu)
@@ -151,6 +152,15 @@ static int msm_11ad_smmu_init(struct msm11ad_ctx *ctx)
rc);
}
+ rc = iommu_domain_set_attr(ctx->mapping->domain,
+ DOMAIN_ATTR_ATOMIC,
+ &atomic_ctx);
+ if (rc) {
+ dev_err(ctx->dev, "Set atomic attribute to SMMU failed (%d)\n",
+ rc);
+ goto release_mapping;
+ }
+
rc = arm_iommu_attach_device(&ctx->pcidev->dev, ctx->mapping);
if (rc) {
dev_err(ctx->dev, "arm_iommu_attach_device failed (%d)\n", rc);