Lines Matching refs:pasid
30 int vcmd_alloc_pasid(struct intel_iommu *iommu, u32 *pasid) in vcmd_alloc_pasid() argument
46 *pasid = VCMD_VRSP_RESULT_PASID(res); in vcmd_alloc_pasid()
61 void vcmd_free_pasid(struct intel_iommu *iommu, u32 pasid) in vcmd_free_pasid() argument
69 VCMD_CMD_OPERAND(pasid) | VCMD_CMD_FREE); in vcmd_free_pasid()
245 struct pasid_entry *intel_pasid_get_entry(struct device *dev, u32 pasid) in intel_pasid_get_entry() argument
254 if (WARN_ON(!pasid_table || pasid >= intel_pasid_get_dev_max_id(dev))) in intel_pasid_get_entry()
259 dir_index = pasid >> PASID_PDE_SHIFT; in intel_pasid_get_entry()
260 index = pasid & PASID_PTE_MASK; in intel_pasid_get_entry()
307 intel_pasid_clear_entry(struct device *dev, u32 pasid, bool fault_ignore) in intel_pasid_clear_entry() argument
311 pe = intel_pasid_get_entry(dev, pasid); in intel_pasid_clear_entry()
446 u16 did, u32 pasid) in pasid_cache_invalidation_with_pasid() argument
451 QI_PC_PASID(pasid) | QI_PC_TYPE; in pasid_cache_invalidation_with_pasid()
460 iotlb_invalidation_with_pasid(struct intel_iommu *iommu, u16 did, u32 pasid) in iotlb_invalidation_with_pasid() argument
464 desc.qw0 = QI_EIOTLB_PASID(pasid) | QI_EIOTLB_DID(did) | in iotlb_invalidation_with_pasid()
475 struct device *dev, u32 pasid) in devtlb_invalidation_with_pasid() argument
494 if (pasid == PASID_RID2PASID) in devtlb_invalidation_with_pasid()
497 qi_flush_dev_iotlb_pasid(iommu, sid, pfsid, pasid, qdep, 0, 64 - VTD_PAGE_SHIFT); in devtlb_invalidation_with_pasid()
501 u32 pasid, bool fault_ignore) in intel_pasid_tear_down_entry() argument
506 pte = intel_pasid_get_entry(dev, pasid); in intel_pasid_tear_down_entry()
511 intel_pasid_clear_entry(dev, pasid, fault_ignore); in intel_pasid_tear_down_entry()
516 pasid_cache_invalidation_with_pasid(iommu, did, pasid); in intel_pasid_tear_down_entry()
517 iotlb_invalidation_with_pasid(iommu, did, pasid); in intel_pasid_tear_down_entry()
521 devtlb_invalidation_with_pasid(iommu, dev, pasid); in intel_pasid_tear_down_entry()
526 u32 pasid, u16 did) in pasid_flush_caches() argument
532 pasid_cache_invalidation_with_pasid(iommu, did, pasid); in pasid_flush_caches()
533 iotlb_invalidation_with_pasid(iommu, did, pasid); in pasid_flush_caches()
545 u32 pasid, u16 did, int flags) in intel_pasid_setup_first_level() argument
555 pte = intel_pasid_get_entry(dev, pasid); in intel_pasid_setup_first_level()
589 pasid_flush_caches(iommu, pte, pasid, did); in intel_pasid_setup_first_level()
618 struct device *dev, u32 pasid) in intel_pasid_setup_second_level() argument
646 pte = intel_pasid_get_entry(dev, pasid); in intel_pasid_setup_second_level()
648 dev_err(dev, "Failed to get pasid entry of PASID %d\n", pasid); in intel_pasid_setup_second_level()
666 pasid_flush_caches(iommu, pte, pasid, did); in intel_pasid_setup_second_level()
676 struct device *dev, u32 pasid) in intel_pasid_setup_pass_through() argument
681 pte = intel_pasid_get_entry(dev, pasid); in intel_pasid_setup_pass_through()
683 dev_err(dev, "Failed to get pasid entry of PASID %d\n", pasid); in intel_pasid_setup_pass_through()
700 pasid_flush_caches(iommu, pte, pasid, did); in intel_pasid_setup_pass_through()
762 pgd_t *gpgd, u32 pasid, in intel_pasid_setup_nested() argument
785 pte = intel_pasid_get_entry(dev, pasid); in intel_pasid_setup_nested()
858 pasid_flush_caches(iommu, pte, pasid, did); in intel_pasid_setup_nested()