Lines Matching refs:c2dev
46 static struct c2_cq *c2_cq_get(struct c2_dev *c2dev, int cqn) in c2_cq_get() argument
51 spin_lock_irqsave(&c2dev->lock, flags); in c2_cq_get()
52 cq = c2dev->qptr_array[cqn]; in c2_cq_get()
54 spin_unlock_irqrestore(&c2dev->lock, flags); in c2_cq_get()
58 spin_unlock_irqrestore(&c2dev->lock, flags); in c2_cq_get()
68 void c2_cq_event(struct c2_dev *c2dev, u32 mq_index) in c2_cq_event() argument
72 cq = c2_cq_get(c2dev, mq_index); in c2_cq_event()
82 void c2_cq_clean(struct c2_dev *c2dev, struct c2_qp *qp, u32 mq_index) in c2_cq_clean() argument
87 cq = c2_cq_get(c2dev, mq_index); in c2_cq_clean()
131 static inline int c2_poll_one(struct c2_dev *c2dev, in c2_poll_one() argument
203 struct c2_dev *c2dev = to_c2dev(ibcq->device); in c2_poll_cq() local
212 err = c2_poll_one(c2dev, cq, entry + npolled); in c2_poll_cq()
257 static void c2_free_cq_buf(struct c2_dev *c2dev, struct c2_mq *mq) in c2_free_cq_buf() argument
259 dma_free_coherent(&c2dev->pcidev->dev, mq->q_size * mq->msg_size, in c2_free_cq_buf()
263 static int c2_alloc_cq_buf(struct c2_dev *c2dev, struct c2_mq *mq, in c2_alloc_cq_buf() argument
271 pool_start = dma_alloc_coherent(&c2dev->pcidev->dev, q_size * msg_size, in c2_alloc_cq_buf()
289 int c2_init_cq(struct c2_dev *c2dev, int entries, in c2_init_cq() argument
304 cq->mq.shared = c2_alloc_mqsp(c2dev, c2dev->kern_mqsp_pool, in c2_init_cq()
310 err = c2_alloc_cq_buf(c2dev, &cq->mq, entries + 1, C2_CQ_MSG_SIZE); in c2_init_cq()
314 vq_req = vq_req_alloc(c2dev); in c2_init_cq()
323 wr.rnic_handle = c2dev->adapter_handle; in c2_init_cq()
330 vq_req_get(c2dev, vq_req); in c2_init_cq()
332 err = vq_send_wr(c2dev, (union c2wr *) & wr); in c2_init_cq()
334 vq_req_put(c2dev, vq_req); in c2_init_cq()
338 err = vq_wait_for_reply(c2dev, vq_req); in c2_init_cq()
354 peer_pa = c2dev->pa + be32_to_cpu(reply->adapter_shared); in c2_init_cq()
361 vq_repbuf_free(c2dev, reply); in c2_init_cq()
362 vq_req_free(c2dev, vq_req); in c2_init_cq()
373 c2dev->qptr_array[cq->cqn] = cq; in c2_init_cq()
378 vq_repbuf_free(c2dev, reply); in c2_init_cq()
380 vq_req_free(c2dev, vq_req); in c2_init_cq()
382 c2_free_cq_buf(c2dev, &cq->mq); in c2_init_cq()
389 void c2_free_cq(struct c2_dev *c2dev, struct c2_cq *cq) in c2_free_cq() argument
399 spin_lock_irq(&c2dev->lock); in c2_free_cq()
400 c2dev->qptr_array[cq->mq.index] = NULL; in c2_free_cq()
402 spin_unlock_irq(&c2dev->lock); in c2_free_cq()
406 vq_req = vq_req_alloc(c2dev); in c2_free_cq()
414 wr.rnic_handle = c2dev->adapter_handle; in c2_free_cq()
417 vq_req_get(c2dev, vq_req); in c2_free_cq()
419 err = vq_send_wr(c2dev, (union c2wr *) & wr); in c2_free_cq()
421 vq_req_put(c2dev, vq_req); in c2_free_cq()
425 err = vq_wait_for_reply(c2dev, vq_req); in c2_free_cq()
431 vq_repbuf_free(c2dev, reply); in c2_free_cq()
433 vq_req_free(c2dev, vq_req); in c2_free_cq()
436 c2_free_cq_buf(c2dev, &cq->mq); in c2_free_cq()