Lines Matching refs:ie
1237 static void idxd_flush_pending_descs(struct idxd_irq_entry *ie) in idxd_flush_pending_descs() argument
1244 spin_lock(&ie->list_lock); in idxd_flush_pending_descs()
1245 head = llist_del_all(&ie->pending_llist); in idxd_flush_pending_descs()
1248 list_add_tail(&desc->list, &ie->work_list); in idxd_flush_pending_descs()
1251 list_for_each_entry_safe(desc, itr, &ie->work_list, list) in idxd_flush_pending_descs()
1253 spin_unlock(&ie->list_lock); in idxd_flush_pending_descs()
1274 struct idxd_irq_entry *ie) in idxd_device_set_perm_entry() argument
1278 if (ie->pasid == IOMMU_PASID_INVALID) in idxd_device_set_perm_entry()
1282 mperm.pasid = ie->pasid; in idxd_device_set_perm_entry()
1284 iowrite32(mperm.bits, idxd->reg_base + idxd->msix_perm_offset + ie->id * 8); in idxd_device_set_perm_entry()
1288 struct idxd_irq_entry *ie) in idxd_device_clear_perm_entry() argument
1290 iowrite32(0, idxd->reg_base + idxd->msix_perm_offset + ie->id * 8); in idxd_device_clear_perm_entry()
1296 struct idxd_irq_entry *ie = &wq->ie; in idxd_wq_free_irq() local
1301 free_irq(ie->vector, ie); in idxd_wq_free_irq()
1302 idxd_flush_pending_descs(ie); in idxd_wq_free_irq()
1304 idxd_device_release_int_handle(idxd, ie->int_handle, IDXD_IRQ_MSIX); in idxd_wq_free_irq()
1305 idxd_device_clear_perm_entry(idxd, ie); in idxd_wq_free_irq()
1306 ie->vector = -1; in idxd_wq_free_irq()
1307 ie->int_handle = INVALID_INT_HANDLE; in idxd_wq_free_irq()
1308 ie->pasid = IOMMU_PASID_INVALID; in idxd_wq_free_irq()
1316 struct idxd_irq_entry *ie; in idxd_wq_request_irq() local
1322 ie = &wq->ie; in idxd_wq_request_irq()
1323 ie->vector = pci_irq_vector(pdev, ie->id); in idxd_wq_request_irq()
1324 ie->pasid = device_pasid_enabled(idxd) ? idxd->pasid : IOMMU_PASID_INVALID; in idxd_wq_request_irq()
1325 idxd_device_set_perm_entry(idxd, ie); in idxd_wq_request_irq()
1327 rc = request_threaded_irq(ie->vector, NULL, idxd_wq_thread, 0, "idxd-portal", ie); in idxd_wq_request_irq()
1329 dev_err(dev, "Failed to request irq %d.\n", ie->vector); in idxd_wq_request_irq()
1334 rc = idxd_device_request_int_handle(idxd, ie->id, &ie->int_handle, in idxd_wq_request_irq()
1339 ie->int_handle = ie->id; in idxd_wq_request_irq()
1345 ie->int_handle = INVALID_INT_HANDLE; in idxd_wq_request_irq()
1346 free_irq(ie->vector, ie); in idxd_wq_request_irq()
1348 idxd_device_clear_perm_entry(idxd, ie); in idxd_wq_request_irq()
1349 ie->pasid = IOMMU_PASID_INVALID; in idxd_wq_request_irq()