diff options
Diffstat (limited to 'drivers/iommu')
-rw-r--r-- | drivers/iommu/msm_iommu-v1.c | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/drivers/iommu/msm_iommu-v1.c b/drivers/iommu/msm_iommu-v1.c index 7f1f7bcd0e73..81fb615feead 100644 --- a/drivers/iommu/msm_iommu-v1.c +++ b/drivers/iommu/msm_iommu-v1.c @@ -899,16 +899,15 @@ static void msm_iommu_detach_dev(struct iommu_domain *domain, iommu_drvdata->asid[ctx_drvdata->asid - 1]--; ctx_drvdata->asid = -1; - iommu_halt(iommu_drvdata); - __reset_context(iommu_drvdata->cb_base, ctx_drvdata->num); /* * Only reset the M2V tables on the very last detach */ - if (!is_secure && iommu_drvdata->ctx_attach_count == 1) + if (!is_secure && iommu_drvdata->ctx_attach_count == 1) { + iommu_halt(iommu_drvdata); __release_smg(iommu_drvdata->base); - - iommu_resume(iommu_drvdata); + iommu_resume(iommu_drvdata); + } __disable_clocks(iommu_drvdata); |