Lines Matching refs:iova

278 static void arm_smmu_tlb_inv_range_s1(unsigned long iova, size_t size,
290 iova = (iova >> 12) << 12;
291 iova |= cfg->asid;
293 arm_smmu_cb_write(smmu, idx, reg, iova);
294 iova += granule;
297 iova >>= 12;
298 iova |= (u64)cfg->asid << 48;
300 arm_smmu_cb_writeq(smmu, idx, reg, iova);
301 iova += granule >> 12;
306 static void arm_smmu_tlb_inv_range_s2(unsigned long iova, size_t size,
316 iova >>= 12;
319 arm_smmu_cb_writeq(smmu, idx, reg, iova);
321 arm_smmu_cb_write(smmu, idx, reg, iova);
322 iova += granule >> 12;
326 static void arm_smmu_tlb_inv_walk_s1(unsigned long iova, size_t size,
335 arm_smmu_tlb_inv_range_s1(iova, size, granule, cookie,
342 unsigned long iova, size_t granule,
345 arm_smmu_tlb_inv_range_s1(iova, granule, granule, cookie,
349 static void arm_smmu_tlb_inv_walk_s2(unsigned long iova, size_t size,
352 arm_smmu_tlb_inv_range_s2(iova, size, granule, cookie,
358 unsigned long iova, size_t granule,
361 arm_smmu_tlb_inv_range_s2(iova, granule, granule, cookie,
365 static void arm_smmu_tlb_inv_walk_s2_v1(unsigned long iova, size_t size,
378 unsigned long iova, size_t granule,
411 unsigned long iova;
422 iova = arm_smmu_cb_readq(smmu, idx, ARM_SMMU_CB_FAR);
425 ret = report_iommu_fault(&smmu_domain->domain, NULL, iova,
430 "Unhandled context fault: fsr=0x%x, iova=0x%08lx, fsynr=0x%x, cbfrsynra=0x%x, cb=%d\n",
431 fsr, iova, fsynr, cbfrsynra, idx);
1216 static int arm_smmu_map_pages(struct iommu_domain *domain, unsigned long iova,
1228 ret = ops->map_pages(ops, iova, paddr, pgsize, pgcount, prot, gfp, mapped);
1234 static size_t arm_smmu_unmap_pages(struct iommu_domain *domain, unsigned long iova,
1246 ret = ops->unmap_pages(ops, iova, pgsize, pgcount, iotlb_gather);
1283 dma_addr_t iova)
1302 va = iova & ~0xfffUL;
1313 "iova to phys timed out on %pad. Falling back to software table walk.\n",
1314 &iova);
1316 return ops->iova_to_phys(ops, iova);
1327 addr = (phys & GENMASK_ULL(39, 12)) | (iova & 0xfff);
1335 dma_addr_t iova)
1345 return arm_smmu_iova_to_phys_hard(domain, iova);
1347 return ops->iova_to_phys(ops, iova);