Lines Matching refs:nesvnic

1543 static void nes_replenish_nic_rq(struct nes_vnic *nesvnic)  in nes_replenish_nic_rq()  argument
1554 nesnic = &nesvnic->nic; in nes_replenish_nic_rq()
1555 nesdev = nesvnic->nesdev; in nes_replenish_nic_rq()
1558 if (((nesnic->rq_size-1) == atomic_read(&nesvnic->rx_skbs_needed)) && in nes_replenish_nic_rq()
1559 (atomic_read(&nesvnic->rx_skb_timer_running) == 0)) { in nes_replenish_nic_rq()
1560 atomic_set(&nesvnic->rx_skb_timer_running, 1); in nes_replenish_nic_rq()
1562 nesvnic->rq_wqes_timer.expires = jiffies + (HZ/2); /* 1/2 second */ in nes_replenish_nic_rq()
1563 add_timer(&nesvnic->rq_wqes_timer); in nes_replenish_nic_rq()
1571 skb = dev_alloc_skb(nesvnic->max_frame_size); in nes_replenish_nic_rq()
1573 skb->dev = nesvnic->netdev; in nes_replenish_nic_rq()
1576 skb->data, nesvnic->max_frame_size, PCI_DMA_FROMDEVICE); in nes_replenish_nic_rq()
1579 cb->maplen = nesvnic->max_frame_size; in nes_replenish_nic_rq()
1581 nic_rqe = &nesnic->rq_vbase[nesvnic->nic.rq_head]; in nes_replenish_nic_rq()
1583 cpu_to_le32(nesvnic->max_frame_size); in nes_replenish_nic_rq()
1592 atomic_dec(&nesvnic->rx_skbs_needed); in nes_replenish_nic_rq()
1600 if (((nesnic->rq_size-1) == atomic_read(&nesvnic->rx_skbs_needed)) && in nes_replenish_nic_rq()
1601 (atomic_read(&nesvnic->rx_skb_timer_running) == 0)) { in nes_replenish_nic_rq()
1602 atomic_set(&nesvnic->rx_skb_timer_running, 1); in nes_replenish_nic_rq()
1604 nesvnic->rq_wqes_timer.expires = jiffies + (HZ/2); /* 1/2 second */ in nes_replenish_nic_rq()
1605 add_timer(&nesvnic->rq_wqes_timer); in nes_replenish_nic_rq()
1610 } while (atomic_read(&nesvnic->rx_skbs_needed)); in nes_replenish_nic_rq()
1623 struct nes_vnic *nesvnic = from_timer(nesvnic, t, rq_wqes_timer); in nes_rq_wqes_timeout() local
1625 atomic_set(&nesvnic->rx_skb_timer_running, 0); in nes_rq_wqes_timeout()
1626 if (atomic_read(&nesvnic->rx_skbs_needed)) in nes_rq_wqes_timeout()
1627 nes_replenish_nic_rq(nesvnic); in nes_rq_wqes_timeout()
1641 struct nes_vnic *nesvnic = netdev_priv(netdev); in nes_init_nic_qp() local
1654 nesvnic->nic_mem_size = 256 + in nes_init_nic_qp()
1661 nesvnic->nic_vbase = pci_zalloc_consistent(nesdev->pcidev, in nes_init_nic_qp()
1662 nesvnic->nic_mem_size, in nes_init_nic_qp()
1663 &nesvnic->nic_pbase); in nes_init_nic_qp()
1664 if (!nesvnic->nic_vbase) { in nes_init_nic_qp()
1669 nesvnic->nic_vbase, (unsigned long)nesvnic->nic_pbase, nesvnic->nic_mem_size); in nes_init_nic_qp()
1671 vmem = (void *)(((unsigned long)nesvnic->nic_vbase + (256 - 1)) & in nes_init_nic_qp()
1673 pmem = (dma_addr_t)(((unsigned long long)nesvnic->nic_pbase + (256 - 1)) & in nes_init_nic_qp()
1677 nesvnic->nic.first_frag_vbase = vmem; in nes_init_nic_qp()
1680 nesvnic->nic.frag_paddr[counter] = pmem; in nes_init_nic_qp()
1687 nesvnic->nic.sq_vbase = (void *)vmem; in nes_init_nic_qp()
1688 nesvnic->nic.sq_pbase = pmem; in nes_init_nic_qp()
1689 nesvnic->nic.sq_head = 0; in nes_init_nic_qp()
1690 nesvnic->nic.sq_tail = 0; in nes_init_nic_qp()
1691 nesvnic->nic.sq_size = NES_NIC_WQ_SIZE; in nes_init_nic_qp()
1693 nic_sqe = &nesvnic->nic.sq_vbase[counter]; in nes_init_nic_qp()
1700 cpu_to_le32((u32)nesvnic->nic.frag_paddr[counter]); in nes_init_nic_qp()
1702 cpu_to_le32((u32)((u64)nesvnic->nic.frag_paddr[counter] >> 32)); in nes_init_nic_qp()
1705 nesvnic->get_cqp_request = nes_get_cqp_request; in nes_init_nic_qp()
1706 nesvnic->post_cqp_request = nes_post_cqp_request; in nes_init_nic_qp()
1707 nesvnic->mcrq_mcast_filter = NULL; in nes_init_nic_qp()
1709 spin_lock_init(&nesvnic->nic.rq_lock); in nes_init_nic_qp()
1716 nesvnic->nic.rq_vbase = vmem; in nes_init_nic_qp()
1717 nesvnic->nic.rq_pbase = pmem; in nes_init_nic_qp()
1718 nesvnic->nic.rq_head = 0; in nes_init_nic_qp()
1719 nesvnic->nic.rq_tail = 0; in nes_init_nic_qp()
1720 nesvnic->nic.rq_size = NES_NIC_WQ_SIZE; in nes_init_nic_qp()
1727 nesvnic->mcrq_qp_id = nesvnic->nic_index + 32; in nes_init_nic_qp()
1729 nesvnic->mcrq_qp_id = nesvnic->nic.qp_id + 4; in nes_init_nic_qp()
1731 nesvnic->nic_cq.cq_vbase = vmem; in nes_init_nic_qp()
1732 nesvnic->nic_cq.cq_pbase = pmem; in nes_init_nic_qp()
1733 nesvnic->nic_cq.cq_head = 0; in nes_init_nic_qp()
1734 nesvnic->nic_cq.cq_size = NES_NIC_WQ_SIZE * 2; in nes_init_nic_qp()
1736 nesvnic->nic_cq.ce_handler = nes_nic_napi_ce_handler; in nes_init_nic_qp()
1747 ((u32)nesvnic->nic_cq.cq_size << 16)); in nes_init_nic_qp()
1749 nesvnic->nic_cq.cq_number | ((u32)nesdev->nic_ceq_index << 16)); in nes_init_nic_qp()
1750 u64temp = (u64)nesvnic->nic_cq.cq_pbase; in nes_init_nic_qp()
1753 u64temp = (unsigned long)&nesvnic->nic_cq; in nes_init_nic_qp()
1764 nic_context = (void *)(&nesvnic->nic_cq.cq_vbase[nesvnic->nic_cq.cq_size]); in nes_init_nic_qp()
1775 u64temp = (u64)nesvnic->nic.sq_pbase; in nes_init_nic_qp()
1778 u64temp = (u64)nesvnic->nic.rq_pbase; in nes_init_nic_qp()
1784 cqp_wqe->wqe_words[NES_CQP_WQE_ID_IDX] = cpu_to_le32(nesvnic->nic.qp_id); in nes_init_nic_qp()
1785 u64temp = (u64)nesvnic->nic_cq.cq_pbase + in nes_init_nic_qp()
1786 (nesvnic->nic_cq.cq_size * sizeof(struct nes_hw_nic_cqe)); in nes_init_nic_qp()
1800 nesvnic->nic.qp_id); in nes_init_nic_qp()
1805 nesvnic->nic.qp_id, ret); in nes_init_nic_qp()
1807 nes_debug(NES_DBG_INIT, "NIC QP%u create timeout expired\n", nesvnic->nic.qp_id); in nes_init_nic_qp()
1808 pci_free_consistent(nesdev->pcidev, nesvnic->nic_mem_size, nesvnic->nic_vbase, in nes_init_nic_qp()
1809 nesvnic->nic_pbase); in nes_init_nic_qp()
1815 skb = dev_alloc_skb(nesvnic->max_frame_size); in nes_init_nic_qp()
1819 nes_destroy_nic_qp(nesvnic); in nes_init_nic_qp()
1826 nesvnic->max_frame_size, PCI_DMA_FROMDEVICE); in nes_init_nic_qp()
1829 cb->maplen = nesvnic->max_frame_size; in nes_init_nic_qp()
1831 nic_rqe = &nesvnic->nic.rq_vbase[counter]; in nes_init_nic_qp()
1832 nic_rqe->wqe_words[NES_NIC_RQ_WQE_LENGTH_1_0_IDX] = cpu_to_le32(nesvnic->max_frame_size); in nes_init_nic_qp()
1836 nesvnic->nic.rx_skb[counter] = skb; in nes_init_nic_qp()
1840 nesvnic->nic.rq_head = wqe_count; in nes_init_nic_qp()
1845 nes_write32(nesdev->regs+NES_WQE_ALLOC, (counter << 24) | nesvnic->nic.qp_id); in nes_init_nic_qp()
1847 timer_setup(&nesvnic->rq_wqes_timer, nes_rq_wqes_timeout, 0); in nes_init_nic_qp()
1857 (nes_init_mgt_qp(nesdev, netdev, nesvnic))) { in nes_init_nic_qp()
1860 nes_destroy_nic_qp(nesvnic); in nes_init_nic_qp()
1871 void nes_destroy_nic_qp(struct nes_vnic *nesvnic) in nes_destroy_nic_qp() argument
1875 struct nes_device *nesdev = nesvnic->nesdev; in nes_destroy_nic_qp()
1888 nes_destroy_mgt(nesvnic); in nes_destroy_nic_qp()
1895 while (nesvnic->nic.rq_head != nesvnic->nic.rq_tail) { in nes_destroy_nic_qp()
1896 rx_skb = nesvnic->nic.rx_skb[nesvnic->nic.rq_tail]; in nes_destroy_nic_qp()
1901 dev_kfree_skb(nesvnic->nic.rx_skb[nesvnic->nic.rq_tail++]); in nes_destroy_nic_qp()
1902 nesvnic->nic.rq_tail &= (nesvnic->nic.rq_size - 1); in nes_destroy_nic_qp()
1906 while (nesvnic->nic.sq_head != nesvnic->nic.sq_tail) { in nes_destroy_nic_qp()
1907 nic_sqe = &nesvnic->nic.sq_vbase[nesvnic->nic.sq_tail]; in nes_destroy_nic_qp()
1921 if (test_and_clear_bit(nesvnic->nic.sq_tail, in nes_destroy_nic_qp()
1922 nesvnic->nic.first_frag_overflow)) { in nes_destroy_nic_qp()
1950 if (nesvnic->nic.tx_skb[nesvnic->nic.sq_tail]) in nes_destroy_nic_qp()
1952 nesvnic->nic.tx_skb[nesvnic->nic.sq_tail]); in nes_destroy_nic_qp()
1954 nesvnic->nic.sq_tail = (nesvnic->nic.sq_tail + 1) in nes_destroy_nic_qp()
1955 & (nesvnic->nic.sq_size - 1); in nes_destroy_nic_qp()
1968 nesvnic->nic.qp_id); in nes_destroy_nic_qp()
1978 (NES_CQP_DESTROY_CQ | ((u32)nesvnic->nic_cq.cq_size << 16))); in nes_destroy_nic_qp()
1980 (nesvnic->nic_cq.cq_number | ((u32)nesdev->nic_ceq_index << 16))); in nes_destroy_nic_qp()
2005 nesvnic->nic.qp_id); in nes_destroy_nic_qp()
2008 pci_free_consistent(nesdev->pcidev, nesvnic->nic_mem_size, nesvnic->nic_vbase, in nes_destroy_nic_qp()
2009 nesvnic->nic_pbase); in nes_destroy_nic_qp()
2426 struct nes_vnic *nesvnic; in nes_process_mac_intr() local
2582 list_for_each_entry(nesvnic, &nesadapter->nesvnic_list[mac_index], list) { in nes_process_mac_intr()
2584 nesvnic->linkup); in nes_process_mac_intr()
2585 if (nesvnic->linkup == 0) { in nes_process_mac_intr()
2587 nesvnic->netdev->name, nesvnic->netdev); in nes_process_mac_intr()
2588 if (netif_queue_stopped(nesvnic->netdev)) in nes_process_mac_intr()
2589 netif_start_queue(nesvnic->netdev); in nes_process_mac_intr()
2590 nesvnic->linkup = 1; in nes_process_mac_intr()
2591 netif_carrier_on(nesvnic->netdev); in nes_process_mac_intr()
2593 spin_lock(&nesvnic->port_ibevent_lock); in nes_process_mac_intr()
2594 if (nesvnic->of_device_registered) { in nes_process_mac_intr()
2597 nes_port_ibevent(nesvnic); in nes_process_mac_intr()
2600 spin_unlock(&nesvnic->port_ibevent_lock); in nes_process_mac_intr()
2616 list_for_each_entry(nesvnic, &nesadapter->nesvnic_list[mac_index], list) { in nes_process_mac_intr()
2618 nesvnic->linkup); in nes_process_mac_intr()
2619 if (nesvnic->linkup == 1) { in nes_process_mac_intr()
2621 nesvnic->netdev->name, nesvnic->netdev); in nes_process_mac_intr()
2622 if (!(netif_queue_stopped(nesvnic->netdev))) in nes_process_mac_intr()
2623 netif_stop_queue(nesvnic->netdev); in nes_process_mac_intr()
2624 nesvnic->linkup = 0; in nes_process_mac_intr()
2625 netif_carrier_off(nesvnic->netdev); in nes_process_mac_intr()
2627 spin_lock(&nesvnic->port_ibevent_lock); in nes_process_mac_intr()
2628 if (nesvnic->of_device_registered) { in nes_process_mac_intr()
2631 nes_port_ibevent(nesvnic); in nes_process_mac_intr()
2634 spin_unlock(&nesvnic->port_ibevent_lock); in nes_process_mac_intr()
2655 struct nes_vnic *nesvnic; in nes_recheck_link_status() local
2679 list_for_each_entry(nesvnic, &nesadapter->nesvnic_list[mac_index], list) { in nes_recheck_link_status()
2680 if (nesvnic->linkup == 0) { in nes_recheck_link_status()
2682 nesvnic->netdev->name, nesvnic->netdev); in nes_recheck_link_status()
2683 if (netif_queue_stopped(nesvnic->netdev)) in nes_recheck_link_status()
2684 netif_start_queue(nesvnic->netdev); in nes_recheck_link_status()
2685 nesvnic->linkup = 1; in nes_recheck_link_status()
2686 netif_carrier_on(nesvnic->netdev); in nes_recheck_link_status()
2688 spin_lock(&nesvnic->port_ibevent_lock); in nes_recheck_link_status()
2689 if (nesvnic->of_device_registered) { in nes_recheck_link_status()
2692 nes_port_ibevent(nesvnic); in nes_recheck_link_status()
2695 spin_unlock(&nesvnic->port_ibevent_lock); in nes_recheck_link_status()
2701 list_for_each_entry(nesvnic, &nesadapter->nesvnic_list[mac_index], list) { in nes_recheck_link_status()
2702 if (nesvnic->linkup == 1) { in nes_recheck_link_status()
2704 nesvnic->netdev->name, nesvnic->netdev); in nes_recheck_link_status()
2705 if (!(netif_queue_stopped(nesvnic->netdev))) in nes_recheck_link_status()
2706 netif_stop_queue(nesvnic->netdev); in nes_recheck_link_status()
2707 nesvnic->linkup = 0; in nes_recheck_link_status()
2708 netif_carrier_off(nesvnic->netdev); in nes_recheck_link_status()
2710 spin_lock(&nesvnic->port_ibevent_lock); in nes_recheck_link_status()
2711 if (nesvnic->of_device_registered) { in nes_recheck_link_status()
2714 nes_port_ibevent(nesvnic); in nes_recheck_link_status()
2717 spin_unlock(&nesvnic->port_ibevent_lock); in nes_recheck_link_status()
2732 struct nes_vnic *nesvnic = container_of(cq, struct nes_vnic, nic_cq); in nes_nic_napi_ce_handler() local
2734 napi_schedule(&nesvnic->napi); in nes_nic_napi_ce_handler()
2751 struct nes_vnic *nesvnic = container_of(cq, struct nes_vnic, nic_cq); in nes_nic_ce_handler() local
2777 nesnic = &nesvnic->nic; in nes_nic_ce_handler()
2821 if (netif_queue_stopped(nesvnic->netdev)) in nes_nic_ce_handler()
2822 netif_wake_queue(nesvnic->netdev); in nes_nic_ce_handler()
2834 nic_rqe = &nesnic->rq_vbase[nesvnic->nic.rq_tail]; in nes_nic_ce_handler()
2838 nesvnic->max_frame_size, PCI_DMA_FROMDEVICE); in nes_nic_ce_handler()
2845 rx_skb->protocol = eth_type_trans(rx_skb, nesvnic->netdev); in nes_nic_ce_handler()
2849 atomic_inc(&nesvnic->rx_skbs_needed); in nes_nic_ce_handler()
2850 if (atomic_read(&nesvnic->rx_skbs_needed) > (nesvnic->nic.rq_size>>1)) { in nes_nic_ce_handler()
2856 nes_replenish_nic_rq(nesvnic); in nes_nic_ce_handler()
2867 if (nesvnic->netdev->features & NETIF_F_RXCSUM) in nes_nic_ce_handler()
2872 nesvnic->netdev->name, cqe_errv, pkt_type); in nes_nic_ce_handler()
2878 if (nesvnic->netdev->features & NETIF_F_RXCSUM) { in nes_nic_ce_handler()
2886 nesvnic->netdev->name, cqe_errv, pkt_type); in nes_nic_ce_handler()
2892 if (nes_cm_recv(rx_skb, nesvnic->netdev)) in nes_nic_ce_handler()
2904 nesvnic->netdev->name, vlan_tag); in nes_nic_ce_handler()
2908 napi_gro_receive(&nesvnic->napi, rx_skb); in nes_nic_ce_handler()
2930 if (cq->rx_cqes_completed >= nesvnic->budget) in nes_nic_ce_handler()
2942 if (netif_queue_stopped(nesvnic->netdev)) in nes_nic_ce_handler()
2943 netif_wake_queue(nesvnic->netdev); in nes_nic_ce_handler()
2955 if (atomic_read(&nesvnic->rx_skbs_needed)) in nes_nic_ce_handler()
2956 nes_replenish_nic_rq(nesvnic); in nes_nic_ce_handler()
3399 struct nes_vnic *nesvnic = to_nesvnic(nesqp->ibqp.device); in nes_terminate_done() local
3400 struct nes_device *nesdev = nesvnic->nesdev; in nes_terminate_done()
3723 int nes_manage_apbvt(struct nes_vnic *nesvnic, u32 accel_local_port, in nes_manage_apbvt() argument
3726 struct nes_device *nesdev = nesvnic->nesdev; in nes_manage_apbvt()
3781 struct nes_vnic *nesvnic = netdev_priv(netdev); in nes_manage_arp_cache() local
3786 nesdev = nesvnic->nesdev; in nes_manage_arp_cache()