Lines Matching full:devid

132 			return p->devid;  in get_acpihid_device_id()
140 int devid; in get_device_id() local
143 devid = get_pci_device_id(dev); in get_device_id()
145 devid = get_acpihid_device_id(dev, NULL); in get_device_id()
147 return devid; in get_device_id()
186 static struct iommu_dev_data *alloc_dev_data(u16 devid) in alloc_dev_data() argument
195 dev_data->devid = devid; in alloc_dev_data()
202 static struct iommu_dev_data *search_dev_data(u16 devid) in search_dev_data() argument
212 if (dev_data->devid == devid) in search_dev_data()
221 u16 devid = pci_dev_id(pdev); in clone_alias() local
223 if (devid == alias) in clone_alias()
227 amd_iommu_rlookup_table[devid]; in clone_alias()
229 amd_iommu_dev_table[devid].data, in clone_alias()
273 static struct iommu_dev_data *find_dev_data(u16 devid) in find_dev_data() argument
276 struct amd_iommu *iommu = amd_iommu_rlookup_table[devid]; in find_dev_data()
278 dev_data = search_dev_data(devid); in find_dev_data()
281 dev_data = alloc_dev_data(devid); in find_dev_data()
298 int devid; in acpihid_device_group() local
300 devid = get_acpihid_device_id(dev, &entry); in acpihid_device_group()
301 if (devid < 0) in acpihid_device_group()
302 return ERR_PTR(devid); in acpihid_device_group()
305 if ((devid == p->devid) && p->group) in acpihid_device_group()
352 int devid; in check_device() local
357 devid = get_device_id(dev); in check_device()
358 if (devid < 0) in check_device()
362 if (devid > amd_iommu_last_bdf) in check_device()
365 if (amd_iommu_rlookup_table[devid] == NULL) in check_device()
374 int devid; in iommu_init_device() local
379 devid = get_device_id(dev); in iommu_init_device()
380 if (devid < 0) in iommu_init_device()
381 return devid; in iommu_init_device()
383 dev_data = find_dev_data(devid); in iommu_init_device()
399 iommu = amd_iommu_rlookup_table[dev_data->devid]; in iommu_init_device()
410 int devid; in iommu_ignore_device() local
412 devid = get_device_id(dev); in iommu_ignore_device()
413 if (devid < 0) in iommu_ignore_device()
416 amd_iommu_rlookup_table[devid] = NULL; in iommu_ignore_device()
417 memset(&amd_iommu_dev_table[devid], 0, sizeof(struct dev_table_entry)); in iommu_ignore_device()
470 static void dump_dte_entry(u16 devid) in dump_dte_entry() argument
476 amd_iommu_dev_table[devid].data[i]); in dump_dte_entry()
491 int devid, vmg_tag, flags; in amd_iommu_report_rmp_hw_error() local
495 devid = (event[0] >> EVENT_DEVID_SHIFT) & EVENT_DEVID_MASK; in amd_iommu_report_rmp_hw_error()
500 pdev = pci_get_domain_bus_and_slot(0, PCI_BUS_NUM(devid), in amd_iommu_report_rmp_hw_error()
501 devid & 0xff); in amd_iommu_report_rmp_hw_error()
510 PCI_BUS_NUM(devid), PCI_SLOT(devid), PCI_FUNC(devid), in amd_iommu_report_rmp_hw_error()
521 int devid, flags_rmp, vmg_tag, flags; in amd_iommu_report_rmp_fault() local
525 devid = (event[0] >> EVENT_DEVID_SHIFT) & EVENT_DEVID_MASK; in amd_iommu_report_rmp_fault()
531 pdev = pci_get_domain_bus_and_slot(0, PCI_BUS_NUM(devid), in amd_iommu_report_rmp_fault()
532 devid & 0xff); in amd_iommu_report_rmp_fault()
541 PCI_BUS_NUM(devid), PCI_SLOT(devid), PCI_FUNC(devid), in amd_iommu_report_rmp_fault()
549 static void amd_iommu_report_page_fault(u16 devid, u16 domain_id, in amd_iommu_report_page_fault() argument
555 pdev = pci_get_domain_bus_and_slot(0, PCI_BUS_NUM(devid), in amd_iommu_report_page_fault()
556 devid & 0xff); in amd_iommu_report_page_fault()
565 PCI_BUS_NUM(devid), PCI_SLOT(devid), PCI_FUNC(devid), in amd_iommu_report_page_fault()
576 int type, devid, flags, tag; in iommu_print_event() local
584 devid = (event[0] >> EVENT_DEVID_SHIFT) & EVENT_DEVID_MASK; in iommu_print_event()
601 amd_iommu_report_page_fault(devid, pasid, address, flags); in iommu_print_event()
608 PCI_BUS_NUM(devid), PCI_SLOT(devid), PCI_FUNC(devid), in iommu_print_event()
610 dump_dte_entry(devid); in iommu_print_event()
615 PCI_BUS_NUM(devid), PCI_SLOT(devid), PCI_FUNC(devid), in iommu_print_event()
620 PCI_BUS_NUM(devid), PCI_SLOT(devid), PCI_FUNC(devid), in iommu_print_event()
633 PCI_BUS_NUM(devid), PCI_SLOT(devid), PCI_FUNC(devid), in iommu_print_event()
638 PCI_BUS_NUM(devid), PCI_SLOT(devid), PCI_FUNC(devid), in iommu_print_event()
651 PCI_BUS_NUM(devid), PCI_SLOT(devid), PCI_FUNC(devid), in iommu_print_event()
787 pr_debug("%s: devid=%#x, ga_tag=%#x\n", in iommu_poll_ga_log()
924 static void build_inv_dte(struct iommu_cmd *cmd, u16 devid) in build_inv_dte() argument
927 cmd->data[0] = devid; in build_inv_dte()
962 static void build_inv_iotlb_pages(struct iommu_cmd *cmd, u16 devid, int qdep, in build_inv_iotlb_pages() argument
983 cmd->data[0] = devid; in build_inv_iotlb_pages()
985 cmd->data[1] = devid; in build_inv_iotlb_pages()
1011 static void build_inv_iotlb_pasid(struct iommu_cmd *cmd, u16 devid, u32 pasid, in build_inv_iotlb_pasid() argument
1018 cmd->data[0] = devid; in build_inv_iotlb_pasid()
1021 cmd->data[1] = devid; in build_inv_iotlb_pasid()
1031 static void build_complete_ppr(struct iommu_cmd *cmd, u16 devid, u32 pasid, in build_complete_ppr() argument
1036 cmd->data[0] = devid; in build_complete_ppr()
1053 static void build_inv_irt(struct iommu_cmd *cmd, u16 devid) in build_inv_irt() argument
1056 cmd->data[0] = devid; in build_inv_irt()
1151 static int iommu_flush_dte(struct amd_iommu *iommu, u16 devid) in iommu_flush_dte() argument
1155 build_inv_dte(&cmd, devid); in iommu_flush_dte()
1162 u32 devid; in amd_iommu_flush_dte_all() local
1164 for (devid = 0; devid <= 0xffff; ++devid) in amd_iommu_flush_dte_all()
1165 iommu_flush_dte(iommu, devid); in amd_iommu_flush_dte_all()
1209 static void iommu_flush_irt(struct amd_iommu *iommu, u16 devid) in iommu_flush_irt() argument
1213 build_inv_irt(&cmd, devid); in iommu_flush_irt()
1220 u32 devid; in amd_iommu_flush_irt_all() local
1222 for (devid = 0; devid <= MAX_DEV_TABLE_ENTRIES; devid++) in amd_iommu_flush_irt_all()
1223 iommu_flush_irt(iommu, devid); in amd_iommu_flush_irt_all()
1250 iommu = amd_iommu_rlookup_table[dev_data->devid]; in device_flush_iotlb()
1252 build_inv_iotlb_pages(&cmd, dev_data->devid, qdep, address, size); in device_flush_iotlb()
1273 iommu = amd_iommu_rlookup_table[dev_data->devid]; in device_flush_dte()
1279 ret = iommu_flush_dte(iommu, dev_data->devid); in device_flush_dte()
1283 alias = amd_iommu_alias_table[dev_data->devid]; in device_flush_dte()
1284 if (alias != dev_data->devid) { in device_flush_dte()
1899 static void set_dte_entry(u16 devid, struct protection_domain *domain, in set_dte_entry() argument
1914 flags = amd_iommu_dev_table[devid].data[1]; in set_dte_entry()
1920 struct amd_iommu *iommu = amd_iommu_rlookup_table[devid]; in set_dte_entry()
1955 old_domid = amd_iommu_dev_table[devid].data[1] & DEV_DOMID_MASK; in set_dte_entry()
1956 amd_iommu_dev_table[devid].data[1] = flags; in set_dte_entry()
1957 amd_iommu_dev_table[devid].data[0] = pte_root; in set_dte_entry()
1965 struct amd_iommu *iommu = amd_iommu_rlookup_table[devid]; in set_dte_entry()
1971 static void clear_dte_entry(u16 devid) in clear_dte_entry() argument
1974 amd_iommu_dev_table[devid].data[0] = DTE_FLAG_V | DTE_FLAG_TV; in clear_dte_entry()
1975 amd_iommu_dev_table[devid].data[1] &= DTE_FLAG_MASK; in clear_dte_entry()
1977 amd_iommu_apply_erratum_63(devid); in clear_dte_entry()
1987 iommu = amd_iommu_rlookup_table[dev_data->devid]; in do_attach()
2000 set_dte_entry(dev_data->devid, domain, &pgtable, in do_attach()
2012 iommu = amd_iommu_rlookup_table[dev_data->devid]; in do_detach()
2017 clear_dte_entry(dev_data->devid); in do_detach()
2219 int ret, devid; in amd_iommu_probe_device() local
2224 devid = get_device_id(dev); in amd_iommu_probe_device()
2225 if (devid < 0) in amd_iommu_probe_device()
2226 return ERR_PTR(devid); in amd_iommu_probe_device()
2228 iommu = amd_iommu_rlookup_table[devid]; in amd_iommu_probe_device()
2261 int devid = get_device_id(dev); in amd_iommu_release_device() local
2267 iommu = amd_iommu_rlookup_table[devid]; in amd_iommu_release_device()
2313 set_dte_entry(dev_data->devid, domain, pgtable, in update_device_table()
2517 int devid; in amd_iommu_detach_device() local
2522 devid = get_device_id(dev); in amd_iommu_detach_device()
2523 if (devid < 0) in amd_iommu_detach_device()
2529 iommu = amd_iommu_rlookup_table[devid]; in amd_iommu_detach_device()
2556 iommu = amd_iommu_rlookup_table[dev_data->devid]; in amd_iommu_attach_device()
2662 int devid; in amd_iommu_get_resv_regions() local
2664 devid = get_device_id(dev); in amd_iommu_get_resv_regions()
2665 if (devid < 0) in amd_iommu_get_resv_regions()
2672 if (devid < entry->devid_start || devid > entry->devid_end) in amd_iommu_get_resv_regions()
2911 iommu = amd_iommu_rlookup_table[dev_data->devid]; in __flush_pasid()
2913 build_inv_iotlb_pasid(&cmd, dev_data->devid, pasid, in __flush_pasid()
3078 iommu = amd_iommu_rlookup_table[dev_data->devid]; in amd_iommu_complete_ppr()
3080 build_complete_ppr(&cmd, dev_data->devid, pasid, status, in amd_iommu_complete_ppr()
3186 static void set_dte_irq_entry(u16 devid, struct irq_remap_table *table) in set_dte_irq_entry() argument
3190 dte = amd_iommu_dev_table[devid].data[2]; in set_dte_irq_entry()
3197 amd_iommu_dev_table[devid].data[2] = dte; in set_dte_irq_entry()
3200 static struct irq_remap_table *get_irq_table(u16 devid) in get_irq_table() argument
3204 if (WARN_ONCE(!amd_iommu_rlookup_table[devid], in get_irq_table()
3205 "%s: no iommu for devid %x\n", __func__, devid)) in get_irq_table()
3208 table = irq_lookup_table[devid]; in get_irq_table()
3209 if (WARN_ONCE(!table, "%s: no table for devid %x\n", __func__, devid)) in get_irq_table()
3239 static void set_remap_table_entry(struct amd_iommu *iommu, u16 devid, in set_remap_table_entry() argument
3242 irq_lookup_table[devid] = table; in set_remap_table_entry()
3243 set_dte_irq_entry(devid, table); in set_remap_table_entry()
3244 iommu_flush_dte(iommu, devid); in set_remap_table_entry()
3260 static struct irq_remap_table *alloc_irq_table(u16 devid, struct pci_dev *pdev) in alloc_irq_table() argument
3270 iommu = amd_iommu_rlookup_table[devid]; in alloc_irq_table()
3274 table = irq_lookup_table[devid]; in alloc_irq_table()
3278 alias = amd_iommu_alias_table[devid]; in alloc_irq_table()
3281 set_remap_table_entry(iommu, devid, table); in alloc_irq_table()
3293 table = irq_lookup_table[devid]; in alloc_irq_table()
3299 set_remap_table_entry(iommu, devid, table); in alloc_irq_table()
3310 set_remap_table_entry(iommu, devid, table); in alloc_irq_table()
3312 if (devid != alias) in alloc_irq_table()
3328 static int alloc_irq_index(u16 devid, int count, bool align, in alloc_irq_index() argument
3334 struct amd_iommu *iommu = amd_iommu_rlookup_table[devid]; in alloc_irq_index()
3339 table = alloc_irq_table(devid, pdev); in alloc_irq_index()
3378 static int modify_irte_ga(u16 devid, int index, struct irte_ga *irte, in modify_irte_ga() argument
3387 iommu = amd_iommu_rlookup_table[devid]; in modify_irte_ga()
3391 table = get_irq_table(devid); in modify_irte_ga()
3416 iommu_flush_irt(iommu, devid); in modify_irte_ga()
3422 static int modify_irte(u16 devid, int index, union irte *irte) in modify_irte() argument
3428 iommu = amd_iommu_rlookup_table[devid]; in modify_irte()
3432 table = get_irq_table(devid); in modify_irte()
3440 iommu_flush_irt(iommu, devid); in modify_irte()
3446 static void free_irte(u16 devid, int index) in free_irte() argument
3452 iommu = amd_iommu_rlookup_table[devid]; in free_irte()
3456 table = get_irq_table(devid); in free_irte()
3464 iommu_flush_irt(iommu, devid); in free_irte()
3470 u8 vector, u32 dest_apicid, int devid) in irte_prepare() argument
3484 u8 vector, u32 dest_apicid, int devid) in irte_ga_prepare() argument
3498 static void irte_activate(void *entry, u16 devid, u16 index) in irte_activate() argument
3503 modify_irte(devid, index, irte); in irte_activate()
3506 static void irte_ga_activate(void *entry, u16 devid, u16 index) in irte_ga_activate() argument
3511 modify_irte_ga(devid, index, irte, NULL); in irte_ga_activate()
3514 static void irte_deactivate(void *entry, u16 devid, u16 index) in irte_deactivate() argument
3519 modify_irte(devid, index, irte); in irte_deactivate()
3522 static void irte_ga_deactivate(void *entry, u16 devid, u16 index) in irte_ga_deactivate() argument
3527 modify_irte_ga(devid, index, irte, NULL); in irte_ga_deactivate()
3530 static void irte_set_affinity(void *entry, u16 devid, u16 index, in irte_set_affinity() argument
3537 modify_irte(devid, index, irte); in irte_set_affinity()
3540 static void irte_ga_set_affinity(void *entry, u16 devid, u16 index, in irte_ga_set_affinity() argument
3551 modify_irte_ga(devid, index, irte, NULL); in irte_ga_set_affinity()
3606 return get_ioapic_devid(info->devid); in get_devid()
3609 return get_hpet_devid(info->devid); in get_devid()
3620 int devid) in get_irq_domain_for_devid() argument
3622 struct amd_iommu *iommu = amd_iommu_rlookup_table[devid]; in get_irq_domain_for_devid()
3639 int devid; in get_irq_domain() local
3644 devid = get_devid(info); in get_irq_domain()
3645 if (devid < 0) in get_irq_domain()
3647 return get_irq_domain_for_devid(info, devid); in get_irq_domain()
3662 int devid, int index, int sub_handle) in irq_remapping_prepare_irte() argument
3667 struct amd_iommu *iommu = amd_iommu_rlookup_table[devid]; in irq_remapping_prepare_irte()
3672 data->irq_2_irte.devid = devid; in irq_remapping_prepare_irte()
3676 irq_cfg->dest_apicid, devid); in irq_remapping_prepare_irte()
3734 int i, ret, devid; in irq_remapping_alloc() local
3750 devid = get_devid(info); in irq_remapping_alloc()
3751 if (devid < 0) in irq_remapping_alloc()
3762 table = alloc_irq_table(devid, NULL); in irq_remapping_alloc()
3770 iommu = amd_iommu_rlookup_table[devid]; in irq_remapping_alloc()
3783 index = alloc_irq_index(devid, nr_irqs, align, in irq_remapping_alloc()
3786 index = alloc_irq_index(devid, nr_irqs, false, NULL); in irq_remapping_alloc()
3818 irq_data->hwirq = (devid << 16) + i; in irq_remapping_alloc()
3821 irq_remapping_prepare_irte(data, cfg, info, devid, index, i); in irq_remapping_alloc()
3834 free_irte(devid, index + i); in irq_remapping_alloc()
3853 free_irte(irte_info->devid, irte_info->index); in irq_remapping_free()
3871 struct amd_iommu *iommu = amd_iommu_rlookup_table[irte_info->devid]; in irq_remapping_activate()
3877 iommu->irte_ops->activate(data->entry, irte_info->devid, in irq_remapping_activate()
3888 struct amd_iommu *iommu = amd_iommu_rlookup_table[irte_info->devid]; in irq_remapping_deactivate()
3891 iommu->irte_ops->deactivate(data->entry, irte_info->devid, in irq_remapping_deactivate()
3924 return modify_irte_ga(ir_data->irq_2_irte.devid, in amd_iommu_activate_guest_mode()
3954 return modify_irte_ga(ir_data->irq_2_irte.devid, in amd_iommu_deactivate_guest_mode()
3967 struct iommu_dev_data *dev_data = search_dev_data(irte_info->devid); in amd_ir_set_vcpu_affinity()
3989 iommu = amd_iommu_rlookup_table[irte_info->devid]; in amd_ir_set_vcpu_affinity()
4026 iommu->irte_ops->set_affinity(ir_data->entry, irte_info->devid, in amd_ir_update_irte()
4038 struct amd_iommu *iommu = amd_iommu_rlookup_table[irte_info->devid]; in amd_ir_set_affinity()
4100 int devid = ir_data->irq_2_irte.devid; in amd_iommu_update_ga() local
4108 iommu = amd_iommu_rlookup_table[devid]; in amd_iommu_update_ga()
4112 table = get_irq_table(devid); in amd_iommu_update_ga()
4131 iommu_flush_irt(iommu, devid); in amd_iommu_update_ga()