Lines Matching refs:wq

20 	return idxd_chan->wq;
27 struct idxd_device *idxd = desc->wq->idxd;
56 idxd_free_desc(desc->wq, desc);
66 static inline void idxd_prep_desc_common(struct idxd_wq *wq,
88 struct idxd_wq *wq = to_idxd_wq(c);
92 if (wq->state != IDXD_WQ_ENABLED)
96 desc = idxd_alloc_desc(wq, IDXD_OP_BLOCK);
100 idxd_prep_desc_common(wq, desc->hw, DSA_OPCODE_NOOP,
110 struct idxd_wq *wq = to_idxd_wq(c);
112 struct idxd_device *idxd = wq->idxd;
115 if (wq->state != IDXD_WQ_ENABLED)
122 desc = idxd_alloc_desc(wq, IDXD_OP_BLOCK);
126 idxd_prep_desc_common(wq, desc->hw, DSA_OPCODE_MEMMOVE,
137 struct idxd_wq *wq = to_idxd_wq(chan);
138 struct device *dev = &wq->idxd->pdev->dev;
140 idxd_wq_get(wq);
142 idxd_wq_refcount(wq));
148 struct idxd_wq *wq = to_idxd_wq(chan);
149 struct device *dev = &wq->idxd->pdev->dev;
151 idxd_wq_put(wq);
153 idxd_wq_refcount(wq));
174 struct idxd_wq *wq = to_idxd_wq(c);
181 rc = idxd_submit_desc(wq, desc);
183 idxd_free_desc(wq, desc);
248 static int idxd_register_dma_channel(struct idxd_wq *wq)
250 struct idxd_device *idxd = wq->idxd;
265 for (i = 0; i < wq->num_descs; i++) {
266 struct idxd_desc *desc = wq->descs[i];
278 wq->idxd_chan = idxd_chan;
279 idxd_chan->wq = wq;
280 get_device(wq_confdev(wq));
285 static void idxd_unregister_dma_channel(struct idxd_wq *wq)
287 struct idxd_dma_chan *idxd_chan = wq->idxd_chan;
289 struct idxd_dma_dev *idxd_dma = wq->idxd->idxd_dma;
293 kfree(wq->idxd_chan);
294 wq->idxd_chan = NULL;
295 put_device(wq_confdev(wq));
301 struct idxd_wq *wq = idxd_dev_to_wq(idxd_dev);
302 struct idxd_device *idxd = wq->idxd;
308 mutex_lock(&wq->wq_lock);
309 if (!idxd_wq_driver_name_match(wq, dev)) {
315 wq->type = IDXD_WQT_KERNEL;
317 rc = idxd_drv_enable_wq(wq);
319 dev_dbg(dev, "Enable wq %d failed: %d\n", wq->id, rc);
324 rc = idxd_register_dma_channel(wq);
332 mutex_unlock(&wq->wq_lock);
336 idxd_drv_disable_wq(wq);
338 wq->type = IDXD_WQT_NONE;
339 mutex_unlock(&wq->wq_lock);
345 struct idxd_wq *wq = idxd_dev_to_wq(idxd_dev);
347 mutex_lock(&wq->wq_lock);
348 __idxd_wq_quiesce(wq);
349 idxd_unregister_dma_channel(wq);
350 idxd_drv_disable_wq(wq);
351 mutex_unlock(&wq->wq_lock);