Lines Matching refs:cq

1053  * irdma_uk_cq_resize - reset the cq buffer info
1054 * @cq: cq to resize
1055 * @cq_base: new cq buffer addr
1059 irdma_uk_cq_resize(struct irdma_cq_uk *cq, void *cq_base, int cq_size)
1061 cq->cq_base = cq_base;
1062 cq->cq_size = cq_size;
1063 IRDMA_RING_INIT(cq->cq_ring, cq->cq_size);
1064 cq->polarity = 1;
1069 * @cq: cq to resize
1070 * @cq_cnt: the count of the resized cq buffers
1073 irdma_uk_cq_set_resized_cnt(struct irdma_cq_uk *cq, u16 cq_cnt)
1081 get_64bit_val(cq->shadow_area, 32, &temp_val);
1095 set_64bit_val(cq->shadow_area, 32, temp_val);
1099 * irdma_uk_cq_request_notification - cq notification request (door bell)
1100 * @cq: hw cq
1104 irdma_uk_cq_request_notification(struct irdma_cq_uk *cq,
1113 get_64bit_val(cq->shadow_area, IRDMA_BYTE_32, &temp_val);
1126 set_64bit_val(cq->shadow_area, IRDMA_BYTE_32, temp_val);
1130 db_wr32(cq->cq_id, cq->cqe_alloc_db);
1252 * irdma_uk_cq_poll_cmpl - get cq completion info
1253 * @cq: hw cq
1254 * @info: cq poll information returned
1257 irdma_uk_cq_poll_cmpl(struct irdma_cq_uk *cq,
1271 if (cq->avoid_mem_cflct)
1272 cqe = IRDMA_GET_CURRENT_EXTENDED_CQ_ELEM(cq);
1274 cqe = IRDMA_GET_CURRENT_CQ_ELEM(cq);
1278 if (polarity != cq->polarity)
1289 if (cq->avoid_mem_cflct) {
1294 peek_head = (cq->cq_ring.head + 1) % cq->cq_ring.size;
1295 ext_cqe = cq->cq_base[peek_head].buf;
1301 if (polarity != cq->polarity)
1434 IRDMA_RING_MOVE_HEAD_NOCHECK(cq->cq_ring);
1435 IRDMA_RING_MOVE_TAIL(cq->cq_ring);
1436 set_64bit_val(cq->shadow_area, IRDMA_BYTE_0,
1437 IRDMA_RING_CURRENT_HEAD(cq->cq_ring));
1439 return irdma_uk_cq_poll_cmpl(cq, info);
1512 IRDMA_RING_MOVE_HEAD_NOCHECK(cq->cq_ring);
1513 if (!IRDMA_RING_CURRENT_HEAD(cq->cq_ring))
1514 cq->polarity ^= 1;
1516 if (ext_valid && !cq->avoid_mem_cflct) {
1517 IRDMA_RING_MOVE_HEAD_NOCHECK(cq->cq_ring);
1518 if (!IRDMA_RING_CURRENT_HEAD(cq->cq_ring))
1519 cq->polarity ^= 1;
1522 IRDMA_RING_MOVE_TAIL(cq->cq_ring);
1523 if (!cq->avoid_mem_cflct && ext_valid)
1524 IRDMA_RING_MOVE_TAIL(cq->cq_ring);
1525 set_64bit_val(cq->shadow_area, IRDMA_BYTE_0,
1526 IRDMA_RING_CURRENT_HEAD(cq->cq_ring));
1771 * irdma_uk_cq_init - initialize shared cq (user and kernel)
1772 * @cq: hw cq
1773 * @info: hw cq initialization info
1776 irdma_uk_cq_init(struct irdma_cq_uk *cq, struct irdma_cq_uk_init_info *info)
1778 cq->cq_base = info->cq_base;
1779 cq->cq_id = info->cq_id;
1780 cq->cq_size = info->cq_size;
1781 cq->cqe_alloc_db = info->cqe_alloc_db;
1782 cq->cq_ack_db = info->cq_ack_db;
1783 cq->shadow_area = info->shadow_area;
1784 cq->avoid_mem_cflct = info->avoid_mem_cflct;
1785 IRDMA_RING_INIT(cq->cq_ring, cq->cq_size);
1786 cq->polarity = 1;
1792 * irdma_uk_clean_cq - clean cq entries
1794 * @cq: cq to clean
1797 irdma_uk_clean_cq(void *q, struct irdma_cq_uk *cq)
1804 cq_head = cq->cq_ring.head;
1805 temp = cq->polarity;
1807 if (cq->avoid_mem_cflct)
1808 cqe = ((struct irdma_extended_cqe *)(cq->cq_base))[cq_head].buf;
1810 cqe = cq->cq_base[cq_head].buf;
1824 cq_head = (cq_head + 1) % cq->cq_ring.size;