Lines Matching refs:nesdev
53 struct nes_device *nesdev; in nes_replenish_mgt_rq() local
58 nesdev = mgtvnic->nesvnic->nesdev; in nes_replenish_mgt_rq()
79 bus_address = pci_map_single(nesdev->pcidev, in nes_replenish_mgt_rq()
99 nes_write32(nesdev->regs + NES_WQE_ALLOC, (rx_wqes_posted << 24) | nesmgt->qp_id); in nes_replenish_mgt_rq()
118 nes_write32(nesdev->regs + NES_WQE_ALLOC, (rx_wqes_posted << 24) | nesmgt->qp_id); in nes_replenish_mgt_rq()
137 static void nes_mgt_free_skb(struct nes_device *nesdev, struct sk_buff *skb, u32 dir) in nes_mgt_free_skb() argument
142 pci_unmap_single(nesdev->pcidev, cb->busaddr, cb->maplen, dir); in nes_mgt_free_skb()
150 static void nes_download_callback(struct nes_device *nesdev, struct nes_cqp_request *cqp_request) in nes_download_callback() argument
160 nes_mgt_free_skb(nesdev, skb, PCI_DMA_TODEVICE); in nes_download_callback()
166 pci_free_consistent(nesdev->pcidev, fpdu_info->hdr_len, in nes_download_callback()
190 static struct sk_buff *nes_get_next_skb(struct nes_device *nesdev, struct nes_qp *nesqp, in nes_get_next_skb() argument
227 nes_mgt_free_skb(nesdev, old_skb, PCI_DMA_TODEVICE); in nes_get_next_skb()
241 static int get_fpdu_info(struct nes_device *nesdev, struct nes_qp *nesqp, in get_fpdu_info() argument
264 skb = nes_get_next_skb(nesdev, nesqp, NULL, nesqp->pau_rcv_nxt, &ack, &wnd, &fin_rcvd, &rst_rcvd); in get_fpdu_info()
290 skb = nes_get_next_skb(nesdev, nesqp, skb, in get_fpdu_info()
298 nes_mgt_free_skb(nesdev, frags[i].skb, PCI_DMA_TODEVICE); in get_fpdu_info()
329 fpdu_info->cqp_request = nes_get_cqp_request(nesdev); in get_fpdu_info()
347 fpdu_info->hdr_vbase = pci_alloc_consistent(nesdev->pcidev, in get_fpdu_info()
396 nes_put_cqp_request(nesdev, fpdu_info->cqp_request); in get_fpdu_info()
408 struct nes_device *nesdev = nesvnic->nesdev; in forward_fpdus() local
419 rc = get_fpdu_info(nesdev, nesqp, &fpdu_info); in forward_fpdus()
427 nes_fill_init_cqp_wqe(cqp_wqe, nesdev); in forward_fpdus()
476 nes_post_cqp_request(nesdev, cqp_request); in forward_fpdus()
540 nes_mgt_free_skb(nesvnic->nesdev, skb, PCI_DMA_TODEVICE); in queue_fpdus()
591 cb->busaddr = pci_map_single(nesvnic->nesdev->pcidev, cb->data_start, in mgt_thread()
620 void nes_destroy_pau_qp(struct nes_device *nesdev, struct nes_qp *nesqp) in nes_destroy_pau_qp() argument
631 nes_mgt_free_skb(nesdev, skb, PCI_DMA_TODEVICE); in nes_destroy_pau_qp()
637 static void nes_chg_qh_handler(struct nes_device *nesdev, struct nes_cqp_request *cqp_request) in nes_chg_qh_handler() argument
648 nesadapter = nesdev->nesadapter; in nes_chg_qh_handler()
660 new_request = nes_get_cqp_request(nesdev); in nes_chg_qh_handler()
669 cpu_to_le32((u32)PCI_FUNC(nesdev->pcidev->devfn) << 24); in nes_chg_qh_handler()
686 nes_fill_init_cqp_wqe(cqp_wqe, nesdev); in nes_chg_qh_handler()
700 nes_post_cqp_request(nesdev, new_request); in nes_chg_qh_handler()
715 static int nes_change_quad_hash(struct nes_device *nesdev, in nes_change_quad_hash() argument
724 cqp_request = nes_get_cqp_request(nesdev); in nes_change_quad_hash()
737 qh_chg->nesdev = nesdev; in nes_change_quad_hash()
743 nes_fill_init_cqp_wqe(cqp_wqe, nesdev); in nes_change_quad_hash()
757 nes_post_cqp_request(nesdev, cqp_request); in nes_change_quad_hash()
764 nes_put_cqp_request(nesdev, cqp_request); in nes_change_quad_hash()
773 static void nes_mgt_ce_handler(struct nes_device *nesdev, struct nes_hw_nic_cq *cq) in nes_mgt_ce_handler() argument
776 struct nes_adapter *nesadapter = nesdev->nesadapter; in nes_mgt_ce_handler()
814 nes_change_quad_hash(nesdev, mgtvnic->nesvnic, nesqp); in nes_mgt_ce_handler()
822 pci_unmap_single(nesdev->pcidev, cb->busaddr, cb->maplen, PCI_DMA_FROMDEVICE); in nes_mgt_ce_handler()
840 nes_write32(nesdev->regs + NES_CQE_ALLOC, cq->cq_number | (cqe_count << 16)); in nes_mgt_ce_handler()
841 nesdev->currcq_count += cqe_count; in nes_mgt_ce_handler()
851 nes_write32(nesdev->regs + NES_CQE_ALLOC, NES_CQE_ALLOC_NOTIFY_NEXT | in nes_mgt_ce_handler()
853 nes_read32(nesdev->regs + NES_CQE_ALLOC); in nes_mgt_ce_handler()
854 nesdev->currcq_count += cqe_count; in nes_mgt_ce_handler()
860 int nes_init_mgt_qp(struct nes_device *nesdev, struct net_device *netdev, struct nes_vnic *nesvnic) in nes_init_mgt_qp() argument
895 mgt_vbase = pci_alloc_consistent(nesdev->pcidev, NES_MGT_QP_COUNT * mgt_mem_size, &mgt_pbase); in nes_init_mgt_qp()
912 mgtvnic->mgt.qp_id = nesdev->mac_index + NES_MGT_QP_OFFSET + i; in nes_init_mgt_qp()
944 spin_lock_irqsave(&nesdev->cqp.lock, flags); in nes_init_mgt_qp()
945 cqp_head = nesdev->cqp.sq_head; in nes_init_mgt_qp()
947 cqp_wqe = &nesdev->cqp.sq_vbase[cqp_head]; in nes_init_mgt_qp()
948 nes_fill_init_cqp_wqe(cqp_wqe, nesdev); in nes_init_mgt_qp()
954 mgtvnic->mgt_cq.cq_number | ((u32)nesdev->ceq_index << 16)); in nes_init_mgt_qp()
964 if (++cqp_head >= nesdev->cqp.sq_size) in nes_init_mgt_qp()
966 cqp_wqe = &nesdev->cqp.sq_vbase[cqp_head]; in nes_init_mgt_qp()
967 nes_fill_init_cqp_wqe(cqp_wqe, nesdev); in nes_init_mgt_qp()
973 ((u32)PCI_FUNC(nesdev->pcidev->devfn) << 12)); in nes_init_mgt_qp()
975 nes_read_indexed(nesdev, NES_IDX_RX_WINDOW_BUFFER_PAGE_TABLE_SIZE), in nes_init_mgt_qp()
976 nes_read_indexed(nesdev, NES_IDX_RX_WINDOW_BUFFER_SIZE)); in nes_init_mgt_qp()
977 if (nes_read_indexed(nesdev, NES_IDX_RX_WINDOW_BUFFER_SIZE) != 0) in nes_init_mgt_qp()
994 if (++cqp_head >= nesdev->cqp.sq_size) in nes_init_mgt_qp()
996 nesdev->cqp.sq_head = cqp_head; in nes_init_mgt_qp()
1001 nes_write32(nesdev->regs + NES_WQE_ALLOC, 0x02800000 | nesdev->cqp.qp_id); in nes_init_mgt_qp()
1003 spin_unlock_irqrestore(&nesdev->cqp.lock, flags); in nes_init_mgt_qp()
1007 ret = wait_event_timeout(nesdev->cqp.waitq, (nesdev->cqp.sq_tail == cqp_head), in nes_init_mgt_qp()
1014 pci_free_consistent(nesdev->pcidev, nesvnic->mgt_mem_size, nesvnic->mgt_vbase, in nes_init_mgt_qp()
1033 pmem = pci_map_single(nesdev->pcidev, skb->data, in nes_init_mgt_qp()
1057 nes_write32(nesdev->regs + NES_WQE_ALLOC, (counter << 24) | mgtvnic->mgt.qp_id); in nes_init_mgt_qp()
1060 nes_write32(nesdev->regs + NES_CQE_ALLOC, NES_CQE_ALLOC_NOTIFY_NEXT | in nes_init_mgt_qp()
1062 nes_read32(nesdev->regs + NES_CQE_ALLOC); in nes_init_mgt_qp()
1074 struct nes_device *nesdev = nesvnic->nesdev; in nes_destroy_mgt() local
1095 nes_mgt_free_skb(nesdev, rx_skb, PCI_DMA_FROMDEVICE); in nes_destroy_mgt()
1100 spin_lock_irqsave(&nesdev->cqp.lock, flags); in nes_destroy_mgt()
1103 cqp_head = nesdev->cqp.sq_head; in nes_destroy_mgt()
1104 cqp_wqe = &nesdev->cqp.sq_vbase[cqp_head]; in nes_destroy_mgt()
1105 nes_fill_init_cqp_wqe(cqp_wqe, nesdev); in nes_destroy_mgt()
1112 if (++cqp_head >= nesdev->cqp.sq_size) in nes_destroy_mgt()
1115 cqp_wqe = &nesdev->cqp.sq_vbase[cqp_head]; in nes_destroy_mgt()
1118 nes_fill_init_cqp_wqe(cqp_wqe, nesdev); in nes_destroy_mgt()
1122 (mgtvnic->mgt_cq.cq_number | ((u32)nesdev->ceq_index << 16))); in nes_destroy_mgt()
1124 if (++cqp_head >= nesdev->cqp.sq_size) in nes_destroy_mgt()
1127 nesdev->cqp.sq_head = cqp_head; in nes_destroy_mgt()
1131 nes_write32(nesdev->regs + NES_WQE_ALLOC, 0x02800000 | nesdev->cqp.qp_id); in nes_destroy_mgt()
1133 spin_unlock_irqrestore(&nesdev->cqp.lock, flags); in nes_destroy_mgt()
1136 cqp_head, nesdev->cqp.sq_head, in nes_destroy_mgt()
1137 nesdev->cqp.sq_tail, nesdev->cqp.sq_size); in nes_destroy_mgt()
1139 ret = wait_event_timeout(nesdev->cqp.waitq, (nesdev->cqp.sq_tail == cqp_head), in nes_destroy_mgt()
1144 ret, cqp_head, nesdev->cqp.sq_head, nesdev->cqp.sq_tail); in nes_destroy_mgt()
1153 pci_free_consistent(nesdev->pcidev, nesvnic->mgt_mem_size, nesvnic->mgt_vbase, in nes_destroy_mgt()