Lines Matching refs:ie
1249 static void idxd_flush_pending_descs(struct idxd_irq_entry *ie) in idxd_flush_pending_descs() argument
1256 spin_lock(&ie->list_lock); in idxd_flush_pending_descs()
1257 head = llist_del_all(&ie->pending_llist); in idxd_flush_pending_descs()
1260 list_add_tail(&desc->list, &ie->work_list); in idxd_flush_pending_descs()
1263 list_for_each_entry_safe(desc, itr, &ie->work_list, list) in idxd_flush_pending_descs()
1265 spin_unlock(&ie->list_lock); in idxd_flush_pending_descs()
1286 struct idxd_irq_entry *ie) in idxd_device_set_perm_entry() argument
1290 if (ie->pasid == IOMMU_PASID_INVALID) in idxd_device_set_perm_entry()
1294 mperm.pasid = ie->pasid; in idxd_device_set_perm_entry()
1296 iowrite32(mperm.bits, idxd->reg_base + idxd->msix_perm_offset + ie->id * 8); in idxd_device_set_perm_entry()
1300 struct idxd_irq_entry *ie) in idxd_device_clear_perm_entry() argument
1302 iowrite32(0, idxd->reg_base + idxd->msix_perm_offset + ie->id * 8); in idxd_device_clear_perm_entry()
1308 struct idxd_irq_entry *ie = &wq->ie; in idxd_wq_free_irq() local
1313 free_irq(ie->vector, ie); in idxd_wq_free_irq()
1314 idxd_flush_pending_descs(ie); in idxd_wq_free_irq()
1316 idxd_device_release_int_handle(idxd, ie->int_handle, IDXD_IRQ_MSIX); in idxd_wq_free_irq()
1317 idxd_device_clear_perm_entry(idxd, ie); in idxd_wq_free_irq()
1318 ie->vector = -1; in idxd_wq_free_irq()
1319 ie->int_handle = INVALID_INT_HANDLE; in idxd_wq_free_irq()
1320 ie->pasid = IOMMU_PASID_INVALID; in idxd_wq_free_irq()
1328 struct idxd_irq_entry *ie; in idxd_wq_request_irq() local
1334 ie = &wq->ie; in idxd_wq_request_irq()
1335 ie->vector = pci_irq_vector(pdev, ie->id); in idxd_wq_request_irq()
1336 ie->pasid = device_pasid_enabled(idxd) ? idxd->pasid : IOMMU_PASID_INVALID; in idxd_wq_request_irq()
1337 idxd_device_set_perm_entry(idxd, ie); in idxd_wq_request_irq()
1339 rc = request_threaded_irq(ie->vector, NULL, idxd_wq_thread, 0, "idxd-portal", ie); in idxd_wq_request_irq()
1341 dev_err(dev, "Failed to request irq %d.\n", ie->vector); in idxd_wq_request_irq()
1346 rc = idxd_device_request_int_handle(idxd, ie->id, &ie->int_handle, in idxd_wq_request_irq()
1351 ie->int_handle = ie->id; in idxd_wq_request_irq()
1357 ie->int_handle = INVALID_INT_HANDLE; in idxd_wq_request_irq()
1358 free_irq(ie->vector, ie); in idxd_wq_request_irq()
1360 idxd_device_clear_perm_entry(idxd, ie); in idxd_wq_request_irq()
1361 ie->pasid = IOMMU_PASID_INVALID; in idxd_wq_request_irq()