Lines Matching defs:idxd

9 #include <uapi/linux/idxd.h>
11 #include "idxd.h"
16 struct idxd_device *idxd = container_of(work, struct idxd_device, work);
17 struct device *dev = &idxd->pdev->dev;
20 idxd_device_reset(idxd);
21 rc = idxd_device_config(idxd);
25 rc = idxd_device_enable(idxd);
29 for (i = 0; i < idxd->max_wqs; i++) {
30 struct idxd_wq *wq = &idxd->wqs[i];
44 idxd_device_wqs_clear_state(idxd);
50 struct idxd_device *idxd = irq_entry->idxd;
52 idxd_mask_msix_vector(idxd, irq_entry->id);
56 static int process_misc_interrupts(struct idxd_device *idxd, u32 cause)
58 struct device *dev = &idxd->pdev->dev;
65 spin_lock_bh(&idxd->dev_lock);
67 idxd->sw_err.bits[i] = ioread64(idxd->reg_base +
70 iowrite64(idxd->sw_err.bits[0] & IDXD_SWERR_ACK,
71 idxd->reg_base + IDXD_SWERR_OFFSET);
73 if (idxd->sw_err.valid && idxd->sw_err.wq_idx_valid) {
74 int id = idxd->sw_err.wq_idx;
75 struct idxd_wq *wq = &idxd->wqs[id];
82 for (i = 0; i < idxd->max_wqs; i++) {
83 struct idxd_wq *wq = &idxd->wqs[i];
90 spin_unlock_bh(&idxd->dev_lock);
95 i, idxd->sw_err.bits[i]);
101 complete(idxd->cmd_done);
125 gensts.bits = ioread32(idxd->reg_base + IDXD_GENSTATS_OFFSET);
127 idxd->state = IDXD_DEV_HALTED;
134 INIT_WORK(&idxd->work, idxd_device_reinit);
135 queue_work(idxd->wq, &idxd->work);
137 spin_lock_bh(&idxd->dev_lock);
138 idxd_device_wqs_clear_state(idxd);
139 dev_err(&idxd->pdev->dev,
140 "idxd halted, need %s.\n",
143 spin_unlock_bh(&idxd->dev_lock);
154 struct idxd_device *idxd = irq_entry->idxd;
158 cause = ioread32(idxd->reg_base + IDXD_INTCAUSE_OFFSET);
160 iowrite32(cause, idxd->reg_base + IDXD_INTCAUSE_OFFSET);
163 rc = process_misc_interrupts(idxd, cause);
166 cause = ioread32(idxd->reg_base + IDXD_INTCAUSE_OFFSET);
168 iowrite32(cause, idxd->reg_base + IDXD_INTCAUSE_OFFSET);
171 idxd_unmask_msix_vector(idxd, irq_entry->id);
271 idxd_unmask_msix_vector(irq_entry->idxd, irq_entry->id);