/kernel/linux/linux-6.6/drivers/misc/ocxl/ |
H A D | trace.h | 36 TP_PROTO(int pasid, unsigned long pidr), 37 TP_ARGS(pasid, pidr), 40 __field(int, pasid) 45 __entry->pasid = pasid; 49 TP_printk("pasid=%d, pidr=0x%lx", 50 __entry->pasid, 56 TP_PROTO(int pasid, unsigned long pidr), 57 TP_ARGS(pasid, pidr), 60 __field(int, pasid) [all...] |
H A D | context.c | 10 int pasid; in ocxl_context_alloc() local 19 pasid = idr_alloc(&afu->contexts_idr, ctx, afu->pasid_base, in ocxl_context_alloc() 21 if (pasid < 0) { in ocxl_context_alloc() 24 return pasid; in ocxl_context_alloc() 29 ctx->pasid = pasid; in ocxl_context_alloc() 86 rc = ocxl_link_add_pe(ctx->afu->fn->link, ctx->pasid, pidr, ctx->tidr, in ocxl_context_attach() 129 pasid_off = ctx->pasid - ctx->afu->pasid_base; in map_pp_mmio() 147 pr_debug("%s: pasid %d address 0x%lx offset 0x%llx\n", __func__, in ocxl_mmap_fault() 148 ctx->pasid, vm in ocxl_mmap_fault() [all...] |
/kernel/linux/linux-5.10/drivers/misc/ocxl/ |
H A D | trace.h | 12 TP_PROTO(pid_t pid, void *spa, int pasid, u32 pidr, u32 tidr), 13 TP_ARGS(pid, spa, pasid, pidr, tidr), 18 __field(int, pasid) 26 __entry->pasid = pasid; 31 TP_printk("linux pid=%d spa=0x%p pasid=0x%x pidr=0x%x tidr=0x%x", 34 __entry->pasid, 41 TP_PROTO(pid_t pid, void *spa, int pasid, u32 pidr, u32 tidr), 42 TP_ARGS(pid, spa, pasid, pidr, tidr) 46 TP_PROTO(pid_t pid, void *spa, int pasid, u3 [all...] |
H A D | context.c | 10 int pasid; in ocxl_context_alloc() local 19 pasid = idr_alloc(&afu->contexts_idr, ctx, afu->pasid_base, in ocxl_context_alloc() 21 if (pasid < 0) { in ocxl_context_alloc() 24 return pasid; in ocxl_context_alloc() 29 ctx->pasid = pasid; in ocxl_context_alloc() 84 rc = ocxl_link_add_pe(ctx->afu->fn->link, ctx->pasid, pidr, ctx->tidr, in ocxl_context_attach() 127 pasid_off = ctx->pasid - ctx->afu->pasid_base; in map_pp_mmio() 145 pr_debug("%s: pasid %d address 0x%lx offset 0x%llx\n", __func__, in ocxl_mmap_fault() 146 ctx->pasid, vm in ocxl_mmap_fault() [all...] |
/kernel/linux/linux-5.10/drivers/gpu/drm/amd/amdkfd/ |
H A D | kfd_dbgmgr.c | 51 pmgr->pasid = 0; in kfd_dbgmgr_uninitialize() 77 new_buff->pasid = 0; in kfd_dbgmgr_create() 98 if (pmgr->pasid != 0) { in kfd_dbgmgr_register() 99 pr_debug("H/W debugger is already active using pasid 0x%x\n", in kfd_dbgmgr_register() 100 pmgr->pasid); in kfd_dbgmgr_register() 104 /* remember pasid */ in kfd_dbgmgr_register() 105 pmgr->pasid = p->pasid; in kfd_dbgmgr_register() 119 if (pmgr->pasid != p->pasid) { in kfd_dbgmgr_unregister() [all...] |
H A D | cik_event_interrupt.c | 38 uint16_t pasid; in cik_event_interrupt_isr() local 54 ret = f2g->get_atc_vmid_pasid_mapping_info(dev->kgd, vmid, &pasid); in cik_event_interrupt_isr() 58 tmp_ihre->ring_id |= pasid << 16; in cik_event_interrupt_isr() 60 return ret && (pasid != 0) && in cik_event_interrupt_isr() 72 pasid = (ihre->ring_id & 0xffff0000) >> 16; in cik_event_interrupt_isr() 73 if (WARN_ONCE(pasid == 0, "FW bug: No PASID in KFD interrupt")) in cik_event_interrupt_isr() 94 u32 pasid = (ihre->ring_id & 0xffff0000) >> 16; in cik_event_interrupt_wq() local 96 if (pasid == 0) in cik_event_interrupt_wq() 100 kfd_signal_event_interrupt(pasid, context_id, 28); in cik_event_interrupt_wq() 102 kfd_signal_event_interrupt(pasid, context_i in cik_event_interrupt_wq() [all...] |
H A D | kfd_int_process_v9.c | 34 uint16_t source_id, client_id, pasid, vmid; in event_interrupt_isr_v9() local 45 pasid = SOC15_PASID_FROM_IH_ENTRY(ih_ring_entry); in event_interrupt_isr_v9() 47 /* This is a known issue for gfx9. Under non HWS, pasid is not set in event_interrupt_isr_v9() 48 * in the interrupt payload, so we need to find out the pasid on our in event_interrupt_isr_v9() 51 if (!pasid && dev->dqm->sched_policy == KFD_SCHED_POLICY_NO_HWS) { in event_interrupt_isr_v9() 58 pasid = dev->dqm->vmid_pasid[vmid]; in event_interrupt_isr_v9() 60 /* Patch the pasid field */ in event_interrupt_isr_v9() 62 & ~pasid_mask) | pasid); in event_interrupt_isr_v9() 65 pr_debug("client id 0x%x, source id %d, vmid %d, pasid 0x%x. raw data:\n", in event_interrupt_isr_v9() 66 client_id, source_id, vmid, pasid); in event_interrupt_isr_v9() 90 uint16_t source_id, client_id, pasid, vmid; event_interrupt_wq_v9() local [all...] |
H A D | kfd_iommu.c | 83 "error required iommu flags ats %i, pri %i, pasid %i\n", in kfd_iommu_device_init() 96 dev_err(kfd_device, "error setting pasid limit\n"); in kfd_iommu_device_init() 124 err = amd_iommu_bind_pasid(dev->pdev, p->pasid, p->lead_thread); in kfd_iommu_bind_process_to_device() 142 amd_iommu_unbind_pasid(pdd->dev->pdev, p->pasid); in kfd_iommu_unbind_process() 146 static void iommu_pasid_shutdown_callback(struct pci_dev *pdev, u32 pasid) in iommu_pasid_shutdown_callback() argument 156 * Look for the process that matches the pasid. If there is no such in iommu_pasid_shutdown_callback() 160 p = kfd_lookup_process_by_pasid(pasid); in iommu_pasid_shutdown_callback() 164 pr_debug("Unbinding process 0x%x from IOMMU\n", pasid); in iommu_pasid_shutdown_callback() 168 if (dev->dbgmgr && dev->dbgmgr->pasid == p->pasid) { in iommu_pasid_shutdown_callback() 192 iommu_invalid_ppr_cb(struct pci_dev *pdev, u32 pasid, unsigned long address, u16 flags) iommu_invalid_ppr_cb() argument [all...] |
/kernel/linux/linux-6.6/drivers/gpu/drm/amd/amdkfd/ |
H A D | cik_event_interrupt.c | 38 uint16_t pasid; in cik_event_interrupt_isr() local 54 ret = f2g->get_atc_vmid_pasid_mapping_info(dev->adev, vmid, &pasid); in cik_event_interrupt_isr() 58 tmp_ihre->ring_id |= pasid << 16; in cik_event_interrupt_isr() 60 return ret && (pasid != 0) && in cik_event_interrupt_isr() 72 pasid = (ihre->ring_id & 0xffff0000) >> 16; in cik_event_interrupt_isr() 73 if (WARN_ONCE(pasid == 0, "FW bug: No PASID in KFD interrupt")) in cik_event_interrupt_isr() 95 u32 pasid = (ihre->ring_id & 0xffff0000) >> 16; in cik_event_interrupt_wq() local 97 if (pasid == 0) in cik_event_interrupt_wq() 101 kfd_signal_event_interrupt(pasid, context_id, 28); in cik_event_interrupt_wq() 103 kfd_signal_event_interrupt(pasid, context_i in cik_event_interrupt_wq() [all...] |
H A D | kfd_int_process_v10.c | 133 uint16_t pasid, uint16_t client_id) in event_interrupt_poison_consumption() 136 struct kfd_process *p = kfd_lookup_process_by_pasid(pasid); in event_interrupt_poison_consumption() 153 ret = kfd_dqm_evict_pasid(dev->dqm, pasid); in event_interrupt_poison_consumption() 165 kfd_signal_poison_consumed_event(dev, pasid); in event_interrupt_poison_consumption() 188 uint16_t source_id, client_id, pasid, vmid; in event_interrupt_isr_v10() local 201 pasid = SOC15_PASID_FROM_IH_ENTRY(ih_ring_entry); in event_interrupt_isr_v10() 222 pr_debug("client id 0x%x, source id %d, vmid %d, pasid 0x%x. raw data:\n", in event_interrupt_isr_v10() 223 client_id, source_id, vmid, pasid); in event_interrupt_isr_v10() 229 if (WARN_ONCE(pasid == 0, "Bug: No PASID in KFD interrupt")) in event_interrupt_isr_v10() 248 uint16_t source_id, client_id, pasid, vmi in event_interrupt_wq_v10() local 132 event_interrupt_poison_consumption(struct kfd_node *dev, uint16_t pasid, uint16_t client_id) event_interrupt_poison_consumption() argument [all...] |
H A D | kfd_int_process_v11.c | 192 uint16_t pasid, uint16_t source_id) in event_interrupt_poison_consumption_v11() 195 struct kfd_process *p = kfd_lookup_process_by_pasid(pasid); in event_interrupt_poison_consumption_v11() 212 ret = dev->dqm->ops.reset_queues(dev->dqm, pasid); in event_interrupt_poison_consumption_v11() 219 kfd_signal_poison_consumed_event(dev, pasid); in event_interrupt_poison_consumption_v11() 234 uint16_t source_id, client_id, pasid, vmid; in event_interrupt_isr_v11() local 247 pasid = SOC15_PASID_FROM_IH_ENTRY(ih_ring_entry); in event_interrupt_isr_v11() 254 pr_debug("client id 0x%x, source id %d, vmid %d, pasid 0x%x. raw data:\n", in event_interrupt_isr_v11() 255 client_id, source_id, vmid, pasid); in event_interrupt_isr_v11() 261 if (WARN_ONCE(pasid == 0, "Bug: No PASID in KFD interrupt")) in event_interrupt_isr_v11() 281 uint16_t source_id, client_id, ring_id, pasid, vmi in event_interrupt_wq_v11() local 191 event_interrupt_poison_consumption_v11(struct kfd_node *dev, uint16_t pasid, uint16_t source_id) event_interrupt_poison_consumption_v11() argument [all...] |
H A D | kfd_int_process_v9.c | 144 uint16_t pasid, uint16_t client_id) in event_interrupt_poison_consumption_v9() 147 struct kfd_process *p = kfd_lookup_process_by_pasid(pasid); in event_interrupt_poison_consumption_v9() 164 ret = kfd_dqm_evict_pasid(dev->dqm, pasid); in event_interrupt_poison_consumption_v9() 176 kfd_signal_poison_consumed_event(dev, pasid); in event_interrupt_poison_consumption_v9() 218 uint16_t source_id, client_id, pasid, vmid; in event_interrupt_isr_v9() local 231 pasid = SOC15_PASID_FROM_IH_ENTRY(ih_ring_entry); in event_interrupt_isr_v9() 253 /* This is a known issue for gfx9. Under non HWS, pasid is not set in event_interrupt_isr_v9() 254 * in the interrupt payload, so we need to find out the pasid on our in event_interrupt_isr_v9() 257 if (!pasid && dev->dqm->sched_policy == KFD_SCHED_POLICY_NO_HWS) { in event_interrupt_isr_v9() 264 pasid in event_interrupt_isr_v9() 143 event_interrupt_poison_consumption_v9(struct kfd_node *dev, uint16_t pasid, uint16_t client_id) event_interrupt_poison_consumption_v9() argument 313 uint16_t source_id, client_id, pasid, vmid; event_interrupt_wq_v9() local [all...] |
/kernel/linux/linux-5.10/drivers/iommu/intel/ |
H A D | pasid.c | 3 * intel-pasid.c - PASID idr, table and entry manipulation 22 #include "pasid.h" 29 int vcmd_alloc_pasid(struct intel_iommu *iommu, u32 *pasid) in vcmd_alloc_pasid() argument 45 *pasid = VCMD_VRSP_RESULT_PASID(res); in vcmd_alloc_pasid() 60 void vcmd_free_pasid(struct intel_iommu *iommu, u32 pasid) in vcmd_free_pasid() argument 68 VCMD_CMD_OPERAND(pasid) | VCMD_CMD_FREE); in vcmd_free_pasid() 87 * Per device pasid table management: 139 * Allocate a pasid table for @dev. It should be called in a 157 /* DMA alias device already has a pasid table, use it: */ in intel_pasid_alloc_table() 247 struct pasid_entry *intel_pasid_get_entry(struct device *dev, u32 pasid) in intel_pasid_get_entry() argument 319 intel_pasid_clear_entry(struct device *dev, u32 pasid, bool fault_ignore) intel_pasid_clear_entry() argument 467 pasid_cache_invalidation_with_pasid(struct intel_iommu *iommu, u16 did, u32 pasid) pasid_cache_invalidation_with_pasid() argument 482 devtlb_invalidation_with_pasid(struct intel_iommu *iommu, struct device *dev, u32 pasid) devtlb_invalidation_with_pasid() argument 508 intel_pasid_tear_down_entry(struct intel_iommu *iommu, struct device *dev, u32 pasid, bool fault_ignore) intel_pasid_tear_down_entry() argument 538 pasid_flush_caches(struct intel_iommu *iommu, struct pasid_entry *pte, u32 pasid, u16 did) pasid_flush_caches() argument 557 intel_pasid_setup_first_level(struct intel_iommu *iommu, struct device *dev, pgd_t *pgd, u32 pasid, u16 did, int flags) intel_pasid_setup_first_level() argument 633 intel_pasid_setup_second_level(struct intel_iommu *iommu, struct dmar_domain *domain, struct device *dev, u32 pasid) intel_pasid_setup_second_level() argument 695 intel_pasid_setup_pass_through(struct intel_iommu *iommu, struct dmar_domain *domain, struct device *dev, u32 pasid) intel_pasid_setup_pass_through() argument 783 intel_pasid_setup_nested(struct intel_iommu *iommu, struct device *dev, pgd_t *gpgd, u32 pasid, struct iommu_gpasid_bind_data_vtd *pasid_data, struct dmar_domain *domain, int addr_width) intel_pasid_setup_nested() argument [all...] |
H A D | svm.c | 24 #include "pasid.h" 27 static void intel_svm_drain_prq(struct device *dev, u32 pasid); 131 qi_flush_piotlb(sdev->iommu, sdev->did, svm->pasid, address, pages, ih); in __flush_svm_range_dev() 134 svm->pasid, sdev->qdep, address, in __flush_svm_range_dev() 196 svm->pasid, true); in intel_mm_release() 213 static int pasid_to_svm_sdev(struct device *dev, unsigned int pasid, in pasid_to_svm_sdev() argument 224 if (pasid == INVALID_IOASID || pasid >= PASID_MAX) in pasid_to_svm_sdev() 227 svm = ioasid_find(NULL, pasid, NULL); in pasid_to_svm_sdev() 314 svm->pasid); in intel_svm_bind_gpasid() 399 intel_svm_unbind_gpasid(struct device *dev, u32 pasid) intel_svm_unbind_gpasid() argument 449 load_pasid(struct mm_struct *mm, u32 pasid) load_pasid() argument 644 intel_svm_unbind_mm(struct device *dev, u32 pasid) intel_svm_unbind_mm() argument 705 u64 pasid:20; global() member 766 intel_svm_drain_prq(struct device *dev, u32 pasid) intel_svm_drain_prq() argument 1116 u32 pasid; intel_svm_get_pasid() local [all...] |
H A D | pasid.h | 3 * pasid.h - PASID idr, table and entry header 27 /* Virtual command interface for enlightened pasid management. */ 38 * Domain ID reserved for pasid entries programmed for first-level 74 void *table; /* pasid table pointer */ 75 int order; /* page order of pasid table */ 76 u32 max_pasid; /* max pasid */ 110 void intel_pasid_free_id(u32 pasid); 111 void *intel_pasid_lookup_id(u32 pasid); 116 struct pasid_entry *intel_pasid_get_entry(struct device *dev, u32 pasid); 119 u32 pasid, u1 [all...] |
/kernel/linux/linux-6.6/drivers/iommu/intel/ |
H A D | pasid.c | 3 * intel-pasid.c - PASID idr, table and entry manipulation 22 #include "pasid.h" 29 int vcmd_alloc_pasid(struct intel_iommu *iommu, u32 *pasid) in vcmd_alloc_pasid() argument 45 *pasid = VCMD_VRSP_RESULT_PASID(res); in vcmd_alloc_pasid() 60 void vcmd_free_pasid(struct intel_iommu *iommu, u32 pasid) in vcmd_free_pasid() argument 68 VCMD_CMD_OPERAND(pasid) | VCMD_CMD_FREE); in vcmd_free_pasid() 87 * Per device pasid table management: 91 * Allocate a pasid table for @dev. It should be called in a 186 static struct pasid_entry *intel_pasid_get_entry(struct device *dev, u32 pasid) in intel_pasid_get_entry() argument 195 if (WARN_ON(!pasid_table || pasid > in intel_pasid_get_entry() 258 intel_pasid_clear_entry(struct device *dev, u32 pasid, bool fault_ignore) intel_pasid_clear_entry() argument 406 pasid_cache_invalidation_with_pasid(struct intel_iommu *iommu, u16 did, u32 pasid) pasid_cache_invalidation_with_pasid() argument 421 devtlb_invalidation_with_pasid(struct intel_iommu *iommu, struct device *dev, u32 pasid) devtlb_invalidation_with_pasid() argument 450 intel_pasid_tear_down_entry(struct intel_iommu *iommu, struct device *dev, u32 pasid, bool fault_ignore) intel_pasid_tear_down_entry() argument 487 pasid_flush_caches(struct intel_iommu *iommu, struct pasid_entry *pte, u32 pasid, u16 did) pasid_flush_caches() argument 506 intel_pasid_setup_first_level(struct intel_iommu *iommu, struct device *dev, pgd_t *pgd, u32 pasid, u16 did, int flags) intel_pasid_setup_first_level() argument 584 intel_pasid_setup_second_level(struct intel_iommu *iommu, struct dmar_domain *domain, struct device *dev, u32 pasid) intel_pasid_setup_second_level() argument 645 intel_pasid_setup_pass_through(struct intel_iommu *iommu, struct dmar_domain *domain, struct device *dev, u32 pasid) intel_pasid_setup_pass_through() argument 681 intel_pasid_setup_page_snoop_control(struct intel_iommu *iommu, struct device *dev, u32 pasid) intel_pasid_setup_page_snoop_control() argument [all...] |
H A D | svm.c | 23 #include "pasid.h" 31 static int pasid_private_add(ioasid_t pasid, void *priv) in pasid_private_add() argument 33 return xa_alloc(&pasid_private_array, &pasid, priv, in pasid_private_add() 34 XA_LIMIT(pasid, pasid), GFP_ATOMIC); in pasid_private_add() 37 static void pasid_private_remove(ioasid_t pasid) in pasid_private_remove() argument 39 xa_erase(&pasid_private_array, pasid); in pasid_private_remove() 42 static void *pasid_private_find(ioasid_t pasid) in pasid_private_find() argument 44 return xa_load(&pasid_private_array, pasid); in pasid_private_find() 182 qi_flush_piotlb(sdev->iommu, sdev->did, svm->pasid, addres in __flush_svm_range_dev() 286 pasid_to_svm_sdev(struct device *dev, unsigned int pasid, struct intel_svm **rsvm, struct intel_svm_dev **rsdev) pasid_to_svm_sdev() argument 392 intel_svm_remove_dev_pasid(struct device *dev, u32 pasid) intel_svm_remove_dev_pasid() argument 436 u64 pasid:20; global() member 479 intel_drain_pasid_prq(struct device *dev, u32 pasid) intel_drain_pasid_prq() argument 820 intel_svm_set_dev_pasid(struct iommu_domain *domain, struct device *dev, ioasid_t pasid) intel_svm_set_dev_pasid() argument [all...] |
H A D | pasid.h | 3 * pasid.h - PASID idr, table and entry header 25 /* Virtual command interface for enlightened pasid management. */ 36 * Domain ID reserved for pasid entries programmed for first-level 66 void *table; /* pasid table pointer */ 67 int order; /* page order of pasid table */ 68 u32 max_pasid; /* max pasid */ 105 u32 pasid, u16 did, int flags); 108 struct device *dev, u32 pasid); 111 struct device *dev, u32 pasid); 113 struct device *dev, u32 pasid, [all...] |
/kernel/linux/linux-6.6/drivers/iommu/ |
H A D | iommu-sva.c | 17 ioasid_t pasid; in iommu_sva_alloc_pasid() local 26 if (mm->pasid >= dev->iommu->max_pasids) in iommu_sva_alloc_pasid() 31 pasid = iommu_alloc_global_pasid(dev); in iommu_sva_alloc_pasid() 32 if (pasid == IOMMU_PASID_INVALID) { in iommu_sva_alloc_pasid() 36 mm->pasid = pasid; in iommu_sva_alloc_pasid() 65 /* Allocate mm->pasid if necessary. */ in iommu_sva_bind_device() 76 domain = iommu_get_domain_for_dev_pasid(dev, mm->pasid, in iommu_sva_bind_device() 88 /* Allocate a new domain and set it on device pasid. */ in iommu_sva_bind_device() 95 ret = iommu_attach_device_pasid(domain, dev, mm->pasid); in iommu_sva_bind_device() 127 ioasid_t pasid = domain->mm->pasid; iommu_sva_unbind_device() local [all...] |
/kernel/linux/linux-5.10/drivers/pci/ |
H A D | ats.c | 364 int pasid = pdev->pasid_cap; in pci_enable_pasid() local 382 if (!pasid) in pci_enable_pasid() 385 pci_read_config_word(pdev, pasid + PCI_PASID_CAP, &supported); in pci_enable_pasid() 395 pci_write_config_word(pdev, pasid + PCI_PASID_CTRL, control); in pci_enable_pasid() 410 int pasid = pdev->pasid_cap; in pci_disable_pasid() local 419 if (!pasid) in pci_disable_pasid() 422 pci_write_config_word(pdev, pasid + PCI_PASID_CTRL, control); in pci_disable_pasid() 435 int pasid = pdev->pasid_cap; in pci_restore_pasid_state() local 443 if (!pasid) in pci_restore_pasid_state() 447 pci_write_config_word(pdev, pasid in pci_restore_pasid_state() 463 int pasid; pci_pasid_features() local 492 int pasid; pci_max_pasids() local [all...] |
/kernel/linux/linux-6.6/drivers/pci/ |
H A D | ats.c | 364 int pasid = pdev->pasid_cap; in pci_enable_pasid() local 382 if (!pasid) in pci_enable_pasid() 388 pci_read_config_word(pdev, pasid + PCI_PASID_CAP, &supported); in pci_enable_pasid() 398 pci_write_config_word(pdev, pasid + PCI_PASID_CTRL, control); in pci_enable_pasid() 413 int pasid = pdev->pasid_cap; in pci_disable_pasid() local 422 if (!pasid) in pci_disable_pasid() 425 pci_write_config_word(pdev, pasid + PCI_PASID_CTRL, control); in pci_disable_pasid() 438 int pasid = pdev->pasid_cap; in pci_restore_pasid_state() local 446 if (!pasid) in pci_restore_pasid_state() 450 pci_write_config_word(pdev, pasid in pci_restore_pasid_state() 466 int pasid; pci_pasid_features() local 495 int pasid; pci_max_pasids() local [all...] |
/kernel/linux/linux-6.6/drivers/iommu/amd/ |
H A D | iommu_v2.c | 44 u32 pasid; /* PASID index */ member 46 teardown of the pasid */ 73 u32 pasid; member 116 /* Get rid of any remaining pasid states */ in free_device_state() 152 u32 pasid, bool alloc) in __get_pasid_state_ptr() 162 index = (pasid >> (9 * level)) & 0x1ff; in __get_pasid_state_ptr() 186 u32 pasid) in set_pasid_state() 193 ptr = __get_pasid_state_ptr(dev_state, pasid, true); in set_pasid_state() 213 static void clear_pasid_state(struct device_state *dev_state, u32 pasid) in clear_pasid_state() argument 219 ptr = __get_pasid_state_ptr(dev_state, pasid, tru in clear_pasid_state() 151 __get_pasid_state_ptr(struct device_state *dev_state, u32 pasid, bool alloc) __get_pasid_state_ptr() argument 184 set_pasid_state(struct device_state *dev_state, struct pasid_state *pasid_state, u32 pasid) set_pasid_state() argument 230 get_pasid_state(struct device_state *dev_state, u32 pasid) get_pasid_state() argument 601 amd_iommu_bind_pasid(struct pci_dev *pdev, u32 pasid, struct task_struct *task) amd_iommu_bind_pasid() argument 688 amd_iommu_unbind_pasid(struct pci_dev *pdev, u32 pasid) amd_iommu_unbind_pasid() argument [all...] |
/kernel/linux/linux-5.10/drivers/iommu/amd/ |
H A D | iommu_v2.c | 43 u32 pasid; /* PASID index */ member 45 teardown of the pasid */ 73 u32 pasid; member 153 u32 pasid, bool alloc) in __get_pasid_state_ptr() 163 index = (pasid >> (9 * level)) & 0x1ff; in __get_pasid_state_ptr() 187 u32 pasid) in set_pasid_state() 194 ptr = __get_pasid_state_ptr(dev_state, pasid, true); in set_pasid_state() 214 static void clear_pasid_state(struct device_state *dev_state, u32 pasid) in clear_pasid_state() argument 220 ptr = __get_pasid_state_ptr(dev_state, pasid, true); in clear_pasid_state() 232 u32 pasid) in get_pasid_state() 152 __get_pasid_state_ptr(struct device_state *dev_state, u32 pasid, bool alloc) __get_pasid_state_ptr() argument 185 set_pasid_state(struct device_state *dev_state, struct pasid_state *pasid_state, u32 pasid) set_pasid_state() argument 231 get_pasid_state(struct device_state *dev_state, u32 pasid) get_pasid_state() argument 598 amd_iommu_bind_pasid(struct pci_dev *pdev, u32 pasid, struct task_struct *task) amd_iommu_bind_pasid() argument 683 amd_iommu_unbind_pasid(struct pci_dev *pdev, u32 pasid) amd_iommu_unbind_pasid() argument [all...] |
/kernel/linux/linux-5.10/drivers/gpu/drm/amd/amdgpu/ |
H A D | amdgpu_ids.c | 43 /* Helper to free pasid from a fence callback */ 46 u32 pasid; member 62 int pasid = -EINVAL; in amdgpu_pasid_alloc() local 65 pasid = ida_simple_get(&amdgpu_pasid_ida, in amdgpu_pasid_alloc() 68 if (pasid != -ENOSPC) in amdgpu_pasid_alloc() 72 if (pasid >= 0) in amdgpu_pasid_alloc() 73 trace_amdgpu_pasid_allocated(pasid); in amdgpu_pasid_alloc() 75 return pasid; in amdgpu_pasid_alloc() 80 * @pasid: PASID to free 82 void amdgpu_pasid_free(u32 pasid) in amdgpu_pasid_free() argument 107 amdgpu_pasid_free_delayed(struct dma_resv *resv, u32 pasid) amdgpu_pasid_free_delayed() argument [all...] |
/kernel/linux/linux-6.6/drivers/gpu/drm/amd/amdgpu/ |
H A D | amdgpu_ids.c | 43 /* Helper to free pasid from a fence callback */ 46 u32 pasid; member 62 int pasid = -EINVAL; in amdgpu_pasid_alloc() local 65 pasid = ida_simple_get(&amdgpu_pasid_ida, in amdgpu_pasid_alloc() 68 if (pasid != -ENOSPC) in amdgpu_pasid_alloc() 72 if (pasid >= 0) in amdgpu_pasid_alloc() 73 trace_amdgpu_pasid_allocated(pasid); in amdgpu_pasid_alloc() 75 return pasid; in amdgpu_pasid_alloc() 80 * @pasid: PASID to free 82 void amdgpu_pasid_free(u32 pasid) in amdgpu_pasid_free() argument 107 amdgpu_pasid_free_delayed(struct dma_resv *resv, u32 pasid) amdgpu_pasid_free_delayed() argument [all...] |