Lines Matching refs:pasid
129 static struct pasid_entry *intel_pasid_get_entry(struct device *dev, u32 pasid) in intel_pasid_get_entry() argument
138 if (WARN_ON(!pasid_table || pasid >= intel_pasid_get_dev_max_id(dev))) in intel_pasid_get_entry()
143 dir_index = pasid >> PASID_PDE_SHIFT; in intel_pasid_get_entry()
144 index = pasid & PASID_PTE_MASK; in intel_pasid_get_entry()
180 intel_pasid_clear_entry(struct device *dev, u32 pasid, bool fault_ignore) in intel_pasid_clear_entry() argument
184 pe = intel_pasid_get_entry(dev, pasid); in intel_pasid_clear_entry()
196 u16 did, u32 pasid) in pasid_cache_invalidation_with_pasid() argument
201 QI_PC_PASID(pasid) | QI_PC_TYPE; in pasid_cache_invalidation_with_pasid()
211 struct device *dev, u32 pasid) in devtlb_invalidation_with_pasid() argument
233 if (pasid == IOMMU_NO_PASID) in devtlb_invalidation_with_pasid()
236 qi_flush_dev_iotlb_pasid(iommu, sid, pfsid, pasid, qdep, 0, 64 - VTD_PAGE_SHIFT); in devtlb_invalidation_with_pasid()
240 u32 pasid, bool fault_ignore) in intel_pasid_tear_down_entry() argument
246 pte = intel_pasid_get_entry(dev, pasid); in intel_pasid_tear_down_entry()
267 intel_iommu_drain_pasid_prq(dev, pasid); in intel_pasid_tear_down_entry()
274 intel_pasid_clear_entry(dev, pasid, fault_ignore); in intel_pasid_tear_down_entry()
280 pasid_cache_invalidation_with_pasid(iommu, did, pasid); in intel_pasid_tear_down_entry()
283 qi_flush_piotlb(iommu, did, pasid, 0, -1, 0); in intel_pasid_tear_down_entry()
287 devtlb_invalidation_with_pasid(iommu, dev, pasid); in intel_pasid_tear_down_entry()
289 intel_iommu_drain_pasid_prq(dev, pasid); in intel_pasid_tear_down_entry()
298 u32 pasid, u16 did) in pasid_flush_caches() argument
304 pasid_cache_invalidation_with_pasid(iommu, did, pasid); in pasid_flush_caches()
305 qi_flush_piotlb(iommu, did, pasid, 0, -1, 0); in pasid_flush_caches()
321 u32 pasid, u16 did, in intel_pasid_flush_present() argument
338 pasid_cache_invalidation_with_pasid(iommu, did, pasid); in intel_pasid_flush_present()
339 qi_flush_piotlb(iommu, did, pasid, 0, -1, 0); in intel_pasid_flush_present()
341 devtlb_invalidation_with_pasid(iommu, dev, pasid); in intel_pasid_flush_present()
376 u32 pasid, u16 did, int flags) in intel_pasid_setup_first_level() argument
393 pte = intel_pasid_get_entry(dev, pasid); in intel_pasid_setup_first_level()
408 pasid_flush_caches(iommu, pte, pasid, did); in intel_pasid_setup_first_level()
415 u32 pasid, u16 did, u16 old_did, in intel_pasid_replace_first_level() argument
435 pte = intel_pasid_get_entry(dev, pasid); in intel_pasid_replace_first_level()
451 intel_pasid_flush_present(iommu, dev, pasid, old_did, pte); in intel_pasid_replace_first_level()
452 intel_iommu_drain_pasid_prq(dev, pasid); in intel_pasid_replace_first_level()
482 struct device *dev, u32 pasid) in intel_pasid_setup_second_level() argument
504 pte = intel_pasid_get_entry(dev, pasid); in intel_pasid_setup_second_level()
519 pasid_flush_caches(iommu, pte, pasid, did); in intel_pasid_setup_second_level()
527 u32 pasid) in intel_pasid_replace_second_level() argument
553 pte = intel_pasid_get_entry(dev, pasid); in intel_pasid_replace_second_level()
569 intel_pasid_flush_present(iommu, dev, pasid, old_did, pte); in intel_pasid_replace_second_level()
570 intel_iommu_drain_pasid_prq(dev, pasid); in intel_pasid_replace_second_level()
579 struct device *dev, u32 pasid, in intel_pasid_setup_dirty_tracking() argument
587 pte = intel_pasid_get_entry(dev, pasid); in intel_pasid_setup_dirty_tracking()
591 dev, "Failed to get pasid entry of PASID %d\n", pasid); in intel_pasid_setup_dirty_tracking()
635 pasid_cache_invalidation_with_pasid(iommu, did, pasid); in intel_pasid_setup_dirty_tracking()
639 devtlb_invalidation_with_pasid(iommu, dev, pasid); in intel_pasid_setup_dirty_tracking()
662 struct device *dev, u32 pasid) in intel_pasid_setup_pass_through() argument
668 pte = intel_pasid_get_entry(dev, pasid); in intel_pasid_setup_pass_through()
682 pasid_flush_caches(iommu, pte, pasid, did); in intel_pasid_setup_pass_through()
689 u32 pasid) in intel_pasid_replace_pass_through() argument
697 pte = intel_pasid_get_entry(dev, pasid); in intel_pasid_replace_pass_through()
713 intel_pasid_flush_present(iommu, dev, pasid, old_did, pte); in intel_pasid_replace_pass_through()
714 intel_iommu_drain_pasid_prq(dev, pasid); in intel_pasid_replace_pass_through()
723 struct device *dev, u32 pasid) in intel_pasid_setup_page_snoop_control() argument
729 pte = intel_pasid_get_entry(dev, pasid); in intel_pasid_setup_page_snoop_control()
739 intel_pasid_flush_present(iommu, dev, pasid, did, pte); in intel_pasid_setup_page_snoop_control()
794 u32 pasid, struct dmar_domain *domain) in intel_pasid_setup_nested() argument
831 pte = intel_pasid_get_entry(dev, pasid); in intel_pasid_setup_nested()
844 pasid_flush_caches(iommu, pte, pasid, did); in intel_pasid_setup_nested()
850 struct device *dev, u32 pasid, in intel_pasid_replace_nested() argument
890 pte = intel_pasid_get_entry(dev, pasid); in intel_pasid_replace_nested()
906 intel_pasid_flush_present(iommu, dev, pasid, old_did, pte); in intel_pasid_replace_nested()
907 intel_iommu_drain_pasid_prq(dev, pasid); in intel_pasid_replace_nested()