Lines Matching refs:nescq
987 struct nes_cq *nescq; in nes_create_qp() local
1141 nescq = to_nescq(init_attr->send_cq); in nes_create_qp()
1142 nesqp->nesscq = nescq; in nes_create_qp()
1143 nescq = to_nescq(init_attr->recv_cq); in nes_create_qp()
1144 nesqp->nesrcq = nescq; in nes_create_qp()
1301 static void nes_clean_cq(struct nes_qp *nesqp, struct nes_cq *nescq) in nes_clean_cq() argument
1309 spin_lock_irqsave(&nescq->lock, flags); in nes_clean_cq()
1311 cq_head = nescq->hw_cq.cq_head; in nes_clean_cq()
1312 while (le32_to_cpu(nescq->hw_cq.cq_vbase[cq_head].cqe_words[NES_CQE_OPCODE_IDX]) & NES_CQE_VALID) { in nes_clean_cq()
1314 lo = le32_to_cpu(nescq->hw_cq.cq_vbase[cq_head].cqe_words[NES_CQE_COMP_COMP_CTX_LOW_IDX]); in nes_clean_cq()
1315 hi = le32_to_cpu(nescq->hw_cq.cq_vbase[cq_head].cqe_words[NES_CQE_COMP_COMP_CTX_HIGH_IDX]); in nes_clean_cq()
1320 nescq->hw_cq.cq_vbase[cq_head].cqe_words[NES_CQE_COMP_COMP_CTX_LOW_IDX] = 0; in nes_clean_cq()
1321 nescq->hw_cq.cq_vbase[cq_head].cqe_words[NES_CQE_COMP_COMP_CTX_HIGH_IDX] = 0; in nes_clean_cq()
1324 if (++cq_head >= nescq->hw_cq.cq_size) in nes_clean_cq()
1328 spin_unlock_irqrestore(&nescq->lock, flags); in nes_clean_cq()
1413 struct nes_cq *nescq; in nes_create_cq() local
1440 nescq = kzalloc(sizeof(struct nes_cq), GFP_KERNEL); in nes_create_cq()
1441 if (!nescq) { in nes_create_cq()
1446 nescq->hw_cq.cq_size = max(entries + 1, 5); in nes_create_cq()
1447 nescq->hw_cq.cq_number = cq_num; in nes_create_cq()
1448 nescq->ibcq.cqe = nescq->hw_cq.cq_size - 1; in nes_create_cq()
1455 kfree(nescq); in nes_create_cq()
1462 nescq->hw_cq.cq_number = nesvnic->nic.qp_id + 28 + 2 * ((nes_ucontext->mcrqf & 0xf) - 1); in nes_create_cq()
1464 nescq->hw_cq.cq_number = nes_ucontext->mcrqf & 0xffff; in nes_create_cq()
1466 nescq->hw_cq.cq_number = nesvnic->mcrq_qp_id + nes_ucontext->mcrqf-1; in nes_create_cq()
1467 nescq->mcrqf = nes_ucontext->mcrqf; in nes_create_cq()
1484 kfree(nescq); in nes_create_cq()
1489 nescq->cq_mem_size = 0; in nes_create_cq()
1491 nescq->cq_mem_size = nescq->hw_cq.cq_size * sizeof(struct nes_hw_cqe); in nes_create_cq()
1493 entries, nescq->cq_mem_size, nescq->hw_cq.cq_number); in nes_create_cq()
1496 mem = pci_zalloc_consistent(nesdev->pcidev, nescq->cq_mem_size, in nes_create_cq()
1497 &nescq->hw_cq.cq_pbase); in nes_create_cq()
1501 kfree(nescq); in nes_create_cq()
1505 nescq->hw_cq.cq_vbase = mem; in nes_create_cq()
1506 nescq->hw_cq.cq_head = 0; in nes_create_cq()
1508 nescq->hw_cq.cq_number, nescq->hw_cq.cq_vbase, in nes_create_cq()
1509 (u32)nescq->hw_cq.cq_pbase); in nes_create_cq()
1512 nescq->hw_cq.ce_handler = nes_iwarp_ce_handler; in nes_create_cq()
1513 spin_lock_init(&nescq->lock); in nes_create_cq()
1520 pci_free_consistent(nesdev->pcidev, nescq->cq_mem_size, mem, in nes_create_cq()
1521 nescq->hw_cq.cq_pbase); in nes_create_cq()
1529 kfree(nescq); in nes_create_cq()
1537 NES_CQP_CQ_CEQE_MASK | ((u32)nescq->hw_cq.cq_size << 16); in nes_create_cq()
1549 pci_free_consistent(nesdev->pcidev, nescq->cq_mem_size, mem, in nes_create_cq()
1550 nescq->hw_cq.cq_pbase); in nes_create_cq()
1557 kfree(nescq); in nes_create_cq()
1561 nescq->virtual_cq = 2; in nes_create_cq()
1571 pci_free_consistent(nesdev->pcidev, nescq->cq_mem_size, mem, in nes_create_cq()
1572 nescq->hw_cq.cq_pbase); in nes_create_cq()
1579 kfree(nescq); in nes_create_cq()
1583 nescq->virtual_cq = 1; in nes_create_cq()
1594 (nescq->hw_cq.cq_number | ((u32)nesdev->ceq_index << 16))); in nes_create_cq()
1604 u64temp = (u64)nescq->hw_cq.cq_pbase; in nes_create_cq()
1609 u64temp = (u64)(unsigned long)&nescq->hw_cq; in nes_create_cq()
1620 nescq->hw_cq.cq_number); in nes_create_cq()
1624 nescq->hw_cq.cq_number, ret); in nes_create_cq()
1628 pci_free_consistent(nesdev->pcidev, nescq->cq_mem_size, mem, in nes_create_cq()
1629 nescq->hw_cq.cq_pbase); in nes_create_cq()
1636 kfree(nescq); in nes_create_cq()
1646 resp.cq_id = nescq->hw_cq.cq_number; in nes_create_cq()
1647 resp.cq_size = nescq->hw_cq.cq_size; in nes_create_cq()
1651 kfree(nescq); in nes_create_cq()
1656 return &nescq->ibcq; in nes_create_cq()
1665 struct nes_cq *nescq; in nes_destroy_cq() local
1678 nescq = to_nescq(ib_cq); in nes_destroy_cq()
1683 nes_debug(NES_DBG_CQ, "Destroy CQ%u\n", nescq->hw_cq.cq_number); in nes_destroy_cq()
1693 opcode = NES_CQP_DESTROY_CQ | (nescq->hw_cq.cq_size << 16); in nes_destroy_cq()
1695 if (nescq->virtual_cq == 1) { in nes_destroy_cq()
1701 } else if (nescq->virtual_cq == 2) { in nes_destroy_cq()
1715 (nescq->hw_cq.cq_number | ((u32)PCI_FUNC(nesdev->pcidev->devfn) << 16))); in nes_destroy_cq()
1716 if (!nescq->mcrqf) in nes_destroy_cq()
1717 nes_free_resource(nesadapter, nesadapter->allocated_cqs, nescq->hw_cq.cq_number); in nes_destroy_cq()
1724 nescq->hw_cq.cq_number); in nes_destroy_cq()
1729 nescq->hw_cq.cq_number, ret, cqp_request->major_code, in nes_destroy_cq()
1733 nescq->hw_cq.cq_number); in nes_destroy_cq()
1737 nescq->hw_cq.cq_number); in nes_destroy_cq()
1744 if (nescq->cq_mem_size) in nes_destroy_cq()
1745 pci_free_consistent(nesdev->pcidev, nescq->cq_mem_size, in nes_destroy_cq()
1746 nescq->hw_cq.cq_vbase, nescq->hw_cq.cq_pbase); in nes_destroy_cq()
1747 kfree(nescq); in nes_destroy_cq()
3401 struct nes_cq *nescq = to_nescq(ibcq); in nes_poll_cq() local
3415 spin_lock_irqsave(&nescq->lock, flags); in nes_poll_cq()
3417 head = nescq->hw_cq.cq_head; in nes_poll_cq()
3418 cq_size = nescq->hw_cq.cq_size; in nes_poll_cq()
3421 if ((le32_to_cpu(nescq->hw_cq.cq_vbase[head].cqe_words[NES_CQE_OPCODE_IDX]) & in nes_poll_cq()
3431 cqe = nescq->hw_cq.cq_vbase[head]; in nes_poll_cq()
3450 nescq->hw_cq.cq_vbase[head].cqe_words[NES_CQE_ERROR_CODE_IDX] = in nes_poll_cq()
3533 nescq->hw_cq.cq_vbase[head].cqe_words[NES_CQE_OPCODE_IDX] = 0; in nes_poll_cq()
3536 nescq->polled_completions++; in nes_poll_cq()
3538 if ((nescq->polled_completions > (cq_size / 2)) || in nes_poll_cq()
3539 (nescq->polled_completions == 255)) { in nes_poll_cq()
3542 nescq->hw_cq.cq_number, nescq->polled_completions, cq_size); in nes_poll_cq()
3544 nescq->hw_cq.cq_number | (nescq->polled_completions << 16)); in nes_poll_cq()
3545 nescq->polled_completions = 0; in nes_poll_cq()
3551 nescq->hw_cq.cq_vbase[head].cqe_words[NES_CQE_COMP_COMP_CTX_LOW_IDX] = in nes_poll_cq()
3557 if (nescq->polled_completions) { in nes_poll_cq()
3559 nescq->hw_cq.cq_number | (nescq->polled_completions << 16)); in nes_poll_cq()
3560 nescq->polled_completions = 0; in nes_poll_cq()
3563 nescq->hw_cq.cq_head = head; in nes_poll_cq()
3565 cqe_count, nescq->hw_cq.cq_number); in nes_poll_cq()
3567 spin_unlock_irqrestore(&nescq->lock, flags); in nes_poll_cq()
3580 struct nes_cq *nescq = to_nescq(ibcq); in nes_req_notify_cq() local
3584 nescq->hw_cq.cq_number); in nes_req_notify_cq()
3586 cq_arm = nescq->hw_cq.cq_number; in nes_req_notify_cq()