• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/components/opensource/linux/linux-2.6.36/drivers/infiniband/hw/nes/

Lines Matching refs:nesvnic

1550 static void nes_replenish_nic_rq(struct nes_vnic *nesvnic)
1560 nesnic = &nesvnic->nic;
1561 nesdev = nesvnic->nesdev;
1564 if (((nesnic->rq_size-1) == atomic_read(&nesvnic->rx_skbs_needed)) &&
1565 (atomic_read(&nesvnic->rx_skb_timer_running) == 0)) {
1566 atomic_set(&nesvnic->rx_skb_timer_running, 1);
1568 nesvnic->rq_wqes_timer.expires = jiffies + (HZ/2); /* 1/2 second */
1569 add_timer(&nesvnic->rq_wqes_timer);
1577 skb = dev_alloc_skb(nesvnic->max_frame_size);
1579 skb->dev = nesvnic->netdev;
1582 skb->data, nesvnic->max_frame_size, PCI_DMA_FROMDEVICE);
1584 nic_rqe = &nesnic->rq_vbase[nesvnic->nic.rq_head];
1586 cpu_to_le32(nesvnic->max_frame_size);
1595 atomic_dec(&nesvnic->rx_skbs_needed);
1603 if (((nesnic->rq_size-1) == atomic_read(&nesvnic->rx_skbs_needed)) &&
1604 (atomic_read(&nesvnic->rx_skb_timer_running) == 0)) {
1605 atomic_set(&nesvnic->rx_skb_timer_running, 1);
1607 nesvnic->rq_wqes_timer.expires = jiffies + (HZ/2); /* 1/2 second */
1608 add_timer(&nesvnic->rq_wqes_timer);
1613 } while (atomic_read(&nesvnic->rx_skbs_needed));
1626 struct nes_vnic *nesvnic = (struct nes_vnic *)parm;
1628 atomic_set(&nesvnic->rx_skb_timer_running, 0);
1629 if (atomic_read(&nesvnic->rx_skbs_needed))
1630 nes_replenish_nic_rq(nesvnic);
1663 struct nes_vnic *nesvnic = netdev_priv(netdev);
1675 nesvnic->nic_mem_size = 256 +
1682 nesvnic->nic_vbase = pci_alloc_consistent(nesdev->pcidev, nesvnic->nic_mem_size,
1683 &nesvnic->nic_pbase);
1684 if (!nesvnic->nic_vbase) {
1688 memset(nesvnic->nic_vbase, 0, nesvnic->nic_mem_size);
1690 nesvnic->nic_vbase, (unsigned long)nesvnic->nic_pbase, nesvnic->nic_mem_size);
1692 vmem = (void *)(((unsigned long)nesvnic->nic_vbase + (256 - 1)) &
1694 pmem = (dma_addr_t)(((unsigned long long)nesvnic->nic_pbase + (256 - 1)) &
1698 nesvnic->nic.first_frag_vbase = vmem;
1701 nesvnic->nic.frag_paddr[counter] = pmem;
1708 nesvnic->nic.sq_vbase = (void *)vmem;
1709 nesvnic->nic.sq_pbase = pmem;
1710 nesvnic->nic.sq_head = 0;
1711 nesvnic->nic.sq_tail = 0;
1712 nesvnic->nic.sq_size = NES_NIC_WQ_SIZE;
1714 nic_sqe = &nesvnic->nic.sq_vbase[counter];
1721 cpu_to_le32((u32)nesvnic->nic.frag_paddr[counter]);
1723 cpu_to_le32((u32)((u64)nesvnic->nic.frag_paddr[counter] >> 32));
1726 nesvnic->get_cqp_request = nes_get_cqp_request;
1727 nesvnic->post_cqp_request = nes_post_cqp_request;
1728 nesvnic->mcrq_mcast_filter = NULL;
1730 spin_lock_init(&nesvnic->nic.rq_lock);
1737 nesvnic->nic.rq_vbase = vmem;
1738 nesvnic->nic.rq_pbase = pmem;
1739 nesvnic->nic.rq_head = 0;
1740 nesvnic->nic.rq_tail = 0;
1741 nesvnic->nic.rq_size = NES_NIC_WQ_SIZE;
1748 nesvnic->mcrq_qp_id = nesvnic->nic_index + 32;
1750 nesvnic->mcrq_qp_id = nesvnic->nic.qp_id + 4;
1752 nesvnic->nic_cq.cq_vbase = vmem;
1753 nesvnic->nic_cq.cq_pbase = pmem;
1754 nesvnic->nic_cq.cq_head = 0;
1755 nesvnic->nic_cq.cq_size = NES_NIC_WQ_SIZE * 2;
1757 nesvnic->nic_cq.ce_handler = nes_nic_napi_ce_handler;
1768 ((u32)nesvnic->nic_cq.cq_size << 16));
1770 nesvnic->nic_cq.cq_number | ((u32)nesdev->nic_ceq_index << 16));
1771 u64temp = (u64)nesvnic->nic_cq.cq_pbase;
1774 u64temp = (unsigned long)&nesvnic->nic_cq;
1785 nic_context = (void *)(&nesvnic->nic_cq.cq_vbase[nesvnic->nic_cq.cq_size]);
1796 u64temp = (u64)nesvnic->nic.sq_pbase;
1799 u64temp = (u64)nesvnic->nic.rq_pbase;
1805 cqp_wqe->wqe_words[NES_CQP_WQE_ID_IDX] = cpu_to_le32(nesvnic->nic.qp_id);
1806 u64temp = (u64)nesvnic->nic_cq.cq_pbase +
1807 (nesvnic->nic_cq.cq_size * sizeof(struct nes_hw_nic_cqe));
1821 nesvnic->nic.qp_id);
1826 nesvnic->nic.qp_id, ret);
1828 nes_debug(NES_DBG_INIT, "NIC QP%u create timeout expired\n", nesvnic->nic.qp_id);
1829 pci_free_consistent(nesdev->pcidev, nesvnic->nic_mem_size, nesvnic->nic_vbase,
1830 nesvnic->nic_pbase);
1836 skb = dev_alloc_skb(nesvnic->max_frame_size);
1840 nes_destroy_nic_qp(nesvnic);
1847 nesvnic->max_frame_size, PCI_DMA_FROMDEVICE);
1849 nic_rqe = &nesvnic->nic.rq_vbase[counter];
1850 nic_rqe->wqe_words[NES_NIC_RQ_WQE_LENGTH_1_0_IDX] = cpu_to_le32(nesvnic->max_frame_size);
1854 nesvnic->nic.rx_skb[counter] = skb;
1858 nesvnic->nic.rq_head = wqe_count;
1863 nes_write32(nesdev->regs+NES_WQE_ALLOC, (counter << 24) | nesvnic->nic.qp_id);
1865 init_timer(&nesvnic->rq_wqes_timer);
1866 nesvnic->rq_wqes_timer.function = nes_rq_wqes_timeout;
1867 nesvnic->rq_wqes_timer.data = (unsigned long)nesvnic;
1876 nesvnic->lro_mgr.max_aggr = nes_lro_max_aggr;
1877 nesvnic->lro_mgr.max_desc = NES_MAX_LRO_DESCRIPTORS;
1878 nesvnic->lro_mgr.lro_arr = nesvnic->lro_desc;
1879 nesvnic->lro_mgr.get_skb_header = nes_lro_get_skb_hdr;
1880 nesvnic->lro_mgr.features = LRO_F_NAPI | LRO_F_EXTRACT_VLAN_ID;
1881 nesvnic->lro_mgr.dev = netdev;
1882 nesvnic->lro_mgr.ip_summed = CHECKSUM_UNNECESSARY;
1883 nesvnic->lro_mgr.ip_summed_aggr = CHECKSUM_UNNECESSARY;
1891 void nes_destroy_nic_qp(struct nes_vnic *nesvnic)
1895 struct nes_device *nesdev = nesvnic->nesdev;
1912 while (nesvnic->nic.rq_head != nesvnic->nic.rq_tail) {
1913 nic_rqe = &nesvnic->nic.rq_vbase[nesvnic->nic.rq_tail];
1919 nesvnic->max_frame_size, PCI_DMA_FROMDEVICE);
1920 dev_kfree_skb(nesvnic->nic.rx_skb[nesvnic->nic.rq_tail++]);
1921 nesvnic->nic.rq_tail &= (nesvnic->nic.rq_size - 1);
1925 while (nesvnic->nic.sq_head != nesvnic->nic.sq_tail) {
1926 nic_sqe = &nesvnic->nic.sq_vbase[nesvnic->nic.sq_tail];
1940 if (test_and_clear_bit(nesvnic->nic.sq_tail,
1941 nesvnic->nic.first_frag_overflow)) {
1969 if (nesvnic->nic.tx_skb[nesvnic->nic.sq_tail])
1971 nesvnic->nic.tx_skb[nesvnic->nic.sq_tail]);
1973 nesvnic->nic.sq_tail = (nesvnic->nic.sq_tail + 1)
1974 & (nesvnic->nic.sq_size - 1);
1987 nesvnic->nic.qp_id);
1997 (NES_CQP_DESTROY_CQ | ((u32)nesvnic->nic_cq.cq_size << 16)));
1999 (nesvnic->nic_cq.cq_number | ((u32)nesdev->nic_ceq_index << 16)));
2024 nesvnic->nic.qp_id);
2027 pci_free_consistent(nesdev->pcidev, nesvnic->nic_mem_size, nesvnic->nic_vbase,
2028 nesvnic->nic_pbase);
2445 struct nes_vnic *nesvnic;
2601 list_for_each_entry(nesvnic, &nesadapter->nesvnic_list[mac_index], list) {
2603 nesvnic->linkup);
2604 if (nesvnic->linkup == 0) {
2606 nesvnic->netdev->name, nesvnic->netdev);
2607 if (netif_queue_stopped(nesvnic->netdev))
2608 netif_start_queue(nesvnic->netdev);
2609 nesvnic->linkup = 1;
2610 netif_carrier_on(nesvnic->netdev);
2626 list_for_each_entry(nesvnic, &nesadapter->nesvnic_list[mac_index], list) {
2628 nesvnic->linkup);
2629 if (nesvnic->linkup == 1) {
2631 nesvnic->netdev->name, nesvnic->netdev);
2632 if (!(netif_queue_stopped(nesvnic->netdev)))
2633 netif_stop_queue(nesvnic->netdev);
2634 nesvnic->linkup = 0;
2635 netif_carrier_off(nesvnic->netdev);
2650 struct nes_vnic *nesvnic = container_of(cq, struct nes_vnic, nic_cq);
2652 napi_schedule(&nesvnic->napi);
2669 struct nes_vnic *nesvnic = container_of(cq, struct nes_vnic, nic_cq);
2692 if (nesvnic->netdev->features & NETIF_F_LRO)
2697 nesnic = &nesvnic->nic;
2741 if (netif_queue_stopped(nesvnic->netdev))
2742 netif_wake_queue(nesvnic->netdev);
2754 nic_rqe = &nesnic->rq_vbase[nesvnic->nic.rq_tail];
2758 nesvnic->max_frame_size, PCI_DMA_FROMDEVICE);
2763 rx_skb->protocol = eth_type_trans(rx_skb, nesvnic->netdev);
2767 atomic_inc(&nesvnic->rx_skbs_needed);
2768 if (atomic_read(&nesvnic->rx_skbs_needed) > (nesvnic->nic.rq_size>>1)) {
2774 nes_replenish_nic_rq(nesvnic);
2785 if (nesvnic->rx_checksum_disabled == 0) {
2791 nesvnic->netdev->name, cqe_errv, pkt_type);
2797 if (nesvnic->rx_checksum_disabled == 0) {
2800 nesvnic->netdev->name); */
2805 nesvnic->netdev->name, cqe_errv, pkt_type);
2811 if (nes_cm_recv(rx_skb, nesvnic->netdev))
2819 (nesvnic->vlan_grp != NULL)) {
2824 nesvnic->netdev->name, vlan_tag);
2826 lro_vlan_hwaccel_receive_skb(&nesvnic->lro_mgr, rx_skb,
2827 nesvnic->vlan_grp, vlan_tag, NULL);
2829 nes_vlan_rx(rx_skb, nesvnic->vlan_grp, vlan_tag);
2832 lro_receive_skb(&nesvnic->lro_mgr, rx_skb, NULL);
2839 /* nesvnic->netstats.rx_packets++; */
2840 /* nesvnic->netstats.rx_bytes += rx_pkt_size; */
2857 if (cq->rx_cqes_completed >= nesvnic->budget)
2867 lro_flush_all(&nesvnic->lro_mgr);
2871 if (netif_queue_stopped(nesvnic->netdev))
2872 netif_wake_queue(nesvnic->netdev);
2884 if (atomic_read(&nesvnic->rx_skbs_needed))
2885 nes_replenish_nic_rq(nesvnic);
3324 struct nes_vnic *nesvnic = to_nesvnic(nesqp->ibqp.device);
3325 struct nes_device *nesdev = nesvnic->nesdev;
3654 int nes_manage_apbvt(struct nes_vnic *nesvnic, u32 accel_local_port,
3657 struct nes_device *nesdev = nesvnic->nesdev;
3712 struct nes_vnic *nesvnic = netdev_priv(netdev);
3717 nesdev = nesvnic->nesdev;