• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-WNDR4500v2-V1.0.0.60_1.0.38/src/linux/linux-2.6/drivers/net/

Lines Matching refs:nic

332 	struct s2io_nic *nic = dev->priv;
335 spin_lock_irqsave(&nic->tx_lock, flags);
336 nic->vlgrp = grp;
337 spin_unlock_irqrestore(&nic->tx_lock, flags);
484 * @nic: Device private variable.
490 static int init_shared_mem(struct s2io_nic *nic)
498 struct net_device *dev = nic->dev;
506 mac_control = &nic->mac_control;
507 config = &nic->config;
547 mac_control->fifos[i].nic = nic;
554 tmp_v = pci_alloc_consistent(nic->pdev,
573 tmp_v = pci_alloc_consistent(nic->pdev,
596 nic->ufo_in_band_v = kcalloc(size, sizeof(u64), GFP_KERNEL);
597 if (!nic->ufo_in_band_v)
605 (rxd_count[nic->rxd_mode] + 1)) {
615 (rxd_count[nic->rxd_mode] + 1 );
619 if (nic->rxd_mode == RXD_MODE_1)
633 mac_control->rings[i].nic = nic;
637 (rxd_count[nic->rxd_mode] + 1);
645 tmp_v_addr = pci_alloc_consistent(nic->pdev, size,
662 rxd_count[nic->rxd_mode],
667 (sizeof(struct rxd_info)* rxd_count[nic->rxd_mode]);
668 for (l=0; l<rxd_count[nic->rxd_mode];l++) {
671 (rxd_size[nic->rxd_mode] * l);
674 (rxd_size[nic->rxd_mode] * l);
697 if (nic->rxd_mode >= RXD_MODE_3A) {
704 (rxd_count[nic->rxd_mode]+ 1);
715 (rxd_count[nic->rxd_mode] + 1)),
720 (rxd_count[nic->rxd_mode] + 1));
721 while (k != rxd_count[nic->rxd_mode]) {
754 (nic->pdev, size, &mac_control->stats_mem_phy);
778 * @nic: Device private variable.
783 static void free_shared_mem(struct s2io_nic *nic)
792 struct net_device *dev = nic->dev;
795 if (!nic)
798 mac_control = &nic->mac_control;
799 config = &nic->config;
815 pci_free_consistent(nic->pdev, PAGE_SIZE,
822 nic->mac_control.stats_info->sw_stat.mem_freed
829 pci_free_consistent(nic->pdev, PAGE_SIZE,
837 nic->mac_control.stats_info->sw_stat.mem_freed
841 nic->mac_control.stats_info->sw_stat.mem_freed +=
842 (nic->config.tx_cfg[i].fifo_len *sizeof(struct list_info_hold));
855 pci_free_consistent(nic->pdev, size,
857 nic->mac_control.stats_info->sw_stat.mem_freed += size;
859 nic->mac_control.stats_info->sw_stat.mem_freed +=
860 ( sizeof(struct rxd_info)* rxd_count[nic->rxd_mode]);
864 if (nic->rxd_mode >= RXD_MODE_3A) {
868 (rxd_count[nic->rxd_mode] + 1);
873 while (k != rxd_count[nic->rxd_mode]) {
877 nic->mac_control.stats_info->sw_stat.\
880 nic->mac_control.stats_info->sw_stat.\
885 nic->mac_control.stats_info->sw_stat.mem_freed += (sizeof(struct buffAdd) *
886 (rxd_count[nic->rxd_mode] + 1));
889 nic->mac_control.stats_info->sw_stat.mem_freed +=
895 pci_free_consistent(nic->pdev,
899 nic->mac_control.stats_info->sw_stat.mem_freed +=
902 if (nic->ufo_in_band_v) {
903 kfree(nic->ufo_in_band_v);
904 nic->mac_control.stats_info->sw_stat.mem_freed
913 static int s2io_verify_pci_mode(struct s2io_nic *nic)
915 struct XENA_dev_config __iomem *bar0 = nic->bar0;
946 static int s2io_print_pci_mode(struct s2io_nic *nic)
948 struct XENA_dev_config __iomem *bar0 = nic->bar0;
951 struct config_param *config = &nic->config;
961 if (s2io_on_nec_bridge(nic->pdev)) {
963 nic->dev->name);
968 DBG_PRINT(ERR_DBG, "%s: Device is on 32 bit ", nic->dev->name);
970 DBG_PRINT(ERR_DBG, "%s: Device is on 64 bit ", nic->dev->name);
1007 * @nic: device peivate variable
1014 static int init_nic(struct s2io_nic *nic)
1016 struct XENA_dev_config __iomem *bar0 = nic->bar0;
1017 struct net_device *dev = nic->dev;
1028 mac_control = &nic->mac_control;
1029 config = &nic->config;
1032 if(s2io_set_swapper(nic)) {
1040 if (nic->device_type & XFRAME_II_DEVICE) {
1071 if (nic->device_type & XFRAME_II_DEVICE) {
1130 if ((nic->device_type == XFRAME_I_DEVICE) &&
1131 (get_xena_rev_id(nic->pdev) < 4))
1161 if (nic->device_type & XFRAME_II_DEVICE)
1452 if (rts_ds_steer(nic, i, 0) == FAILURE) {
1463 if (nic->device_type == XFRAME_II_DEVICE) {
1486 if (nic->device_type == XFRAME_II_DEVICE) {
1487 int count = (nic->config.bus_speed * 125)/2;
1529 if (nic->config.bimodal) {
1561 if (nic->device_type == XFRAME_II_DEVICE) {
1566 int count = (nic->config.bus_speed * 125)/4;
1579 if (nic->intr_type == MSI_X)
1637 if (nic->device_type == XFRAME_II_DEVICE)
1652 val64 |= RMAC_PAUSE_HG_PTIME(nic->mac_control.rmac_pause_time);
1664 (((u64) 0xFF00 | nic->mac_control.
1673 (((u64) 0xFF00 | nic->mac_control.
1687 if (nic->config.bus_speed == 266) {
1697 if (nic->device_type == XFRAME_II_DEVICE) {
1705 if (strstr(nic->product_name, "CX4")) {
1715 static int s2io_link_fault_indication(struct s2io_nic *nic)
1717 if (nic->intr_type != INTA)
1719 if (nic->device_type == XFRAME_II_DEVICE)
1727 * @nic: device private variable,
1736 static void en_dis_able_nic_intrs(struct s2io_nic *nic, u16 mask, int flag)
1738 struct XENA_dev_config __iomem *bar0 = nic->bar0;
1756 if (s2io_link_fault_indication(nic) ==
1982 * @nic : device private variable.
1993 static int start_nic(struct s2io_nic *nic)
1995 struct XENA_dev_config __iomem *bar0 = nic->bar0;
1996 struct net_device *dev = nic->dev;
2002 mac_control = &nic->mac_control;
2003 config = &nic->config;
2011 if (nic->config.bimodal)
2013 if (nic->rxd_mode == RXD_MODE_1)
2017 if (nic->device_type == XFRAME_II_DEVICE)
2024 if (nic->rxd_mode == RXD_MODE_3B) {
2068 if (!verify_xena_quiescence(nic)) {
2088 if (s2io_link_fault_indication(nic) == MAC_RMAC_ERR_TIMER) {
2093 schedule_work(&nic->set_link_task);
2096 subid = nic->pdev->subsystem_device;
2098 (nic->device_type == XFRAME_I_DEVICE)) {
2114 struct s2io_nic *nic = fifo_data->nic;
2120 if (txds->Host_Control == (u64)(long)nic->ufo_in_band_v) {
2121 pci_unmap_single(nic->pdev, (dma_addr_t)
2133 pci_unmap_single(nic->pdev, (dma_addr_t)
2144 pci_unmap_page(nic->pdev, (dma_addr_t)
2155 * @nic : device private variable.
2161 static void free_tx_buffers(struct s2io_nic *nic)
2163 struct net_device *dev = nic->dev;
2171 mac_control = &nic->mac_control;
2172 config = &nic->config;
2180 nic->mac_control.stats_info->sw_stat.mem_freed
2195 * stop_nic - To stop the nic
2196 * @nic ; device private variable.
2204 static void stop_nic(struct s2io_nic *nic)
2206 struct XENA_dev_config __iomem *bar0 = nic->bar0;
2212 mac_control = &nic->mac_control;
2213 config = &nic->config;
2219 en_dis_able_nic_intrs(nic, interruptible, DISABLE_INTRS);
2227 static int fill_rxd_3buf(struct s2io_nic *nic, struct RxD_t *rxdp, struct \
2230 struct net_device *dev = nic->dev;
2236 (nic->pdev, skb->data, l3l4hdr_size + 4,
2242 nic->mac_control.stats_info->sw_stat.mem_alloc_fail_cnt++;
2248 nic->mac_control.stats_info->sw_stat.mem_allocated
2256 ((struct RxD3*)rxdp)->Buffer2_ptr = pci_map_single(nic->pdev,
2267 * @nic: device private variable
2286 static int fill_rx_buffers(struct s2io_nic *nic, int ring_no)
2288 struct net_device *dev = nic->dev;
2302 mac_control = &nic->mac_control;
2303 config = &nic->config;
2305 atomic_read(&nic->rx_bufs_left[ring_no]);
2324 if (off && (off == rxd_count[nic->rxd_mode])) {
2334 if (off == rxd_count[nic->rxd_mode])
2344 spin_lock_irqsave(&nic->put_lock, flags);
2346 (block_no * (rxd_count[nic->rxd_mode] + 1)) + off;
2347 spin_unlock_irqrestore(&nic->put_lock, flags);
2350 (block_no * (rxd_count[nic->rxd_mode] + 1)) + off;
2353 ((nic->rxd_mode >= RXD_MODE_3A) &&
2362 if (nic->rxd_mode == RXD_MODE_1)
2364 else if (nic->rxd_mode == RXD_MODE_3B)
2378 nic->mac_control.stats_info->sw_stat. \
2382 nic->mac_control.stats_info->sw_stat.mem_allocated
2384 if (nic->rxd_mode == RXD_MODE_1) {
2389 (nic->pdev, skb->data, size - NET_IP_ALIGN,
2394 } else if (nic->rxd_mode >= RXD_MODE_3A) {
2424 pci_map_single(nic->pdev, ba->ba_0, BUF0_LEN,
2427 pci_dma_sync_single_for_device(nic->pdev,
2431 if (nic->rxd_mode == RXD_MODE_3B) {
2439 (nic->pdev, skb->data, dev->mtu + 4,
2445 pci_map_single(nic->pdev,
2454 if (fill_rxd_3buf(nic, rxdp, skb) == -ENOMEM) {
2455 nic->mac_control.stats_info->sw_stat.\
2472 if (off == (rxd_count[nic->rxd_mode] + 1))
2484 atomic_inc(&nic->rx_bufs_left[ring_no]);
2611 struct s2io_nic *nic = dev->priv;
2615 struct XENA_dev_config __iomem *bar0 = nic->bar0;
2618 atomic_inc(&nic->isr_cnt);
2619 mac_control = &nic->mac_control;
2620 config = &nic->config;
2622 nic->pkts_to_process = *budget;
2623 if (nic->pkts_to_process > dev->quota)
2624 nic->pkts_to_process = dev->quota;
2625 org_pkts_to_process = nic->pkts_to_process;
2632 pkt_cnt = org_pkts_to_process - nic->pkts_to_process;
2633 if (!nic->pkts_to_process) {
2646 if (fill_rx_buffers(nic, i) == -ENOMEM) {
2655 atomic_dec(&nic->isr_cnt);
2663 if (fill_rx_buffers(nic, i) == -ENOMEM) {
2669 atomic_dec(&nic->isr_cnt);
2685 struct s2io_nic *nic = dev->priv;
2688 struct XENA_dev_config __iomem *bar0 = nic->bar0;
2694 atomic_inc(&nic->isr_cnt);
2695 mac_control = &nic->mac_control;
2696 config = &nic->config;
2713 if (fill_rx_buffers(nic, i) == -ENOMEM) {
2719 atomic_dec(&nic->isr_cnt);
2727 * @nic: device private variable.
2739 struct s2io_nic *nic = ring_data->nic;
2740 struct net_device *dev = (struct net_device *) nic->dev;
2748 spin_lock(&nic->rx_lock);
2749 if (atomic_read(&nic->card_state) == CARD_DOWN) {
2752 spin_unlock(&nic->rx_lock);
2762 spin_lock(&nic->put_lock);
2764 spin_unlock(&nic->put_lock);
2783 spin_unlock(&nic->rx_lock);
2786 if (nic->rxd_mode == RXD_MODE_1) {
2787 pci_unmap_single(nic->pdev, (dma_addr_t)
2794 } else if (nic->rxd_mode == RXD_MODE_3B) {
2795 pci_dma_sync_single_for_cpu(nic->pdev, (dma_addr_t)
2798 pci_unmap_single(nic->pdev, (dma_addr_t)
2803 pci_dma_sync_single_for_cpu(nic->pdev, (dma_addr_t)
2806 pci_unmap_single(nic->pdev, (dma_addr_t)
2810 pci_unmap_single(nic->pdev, (dma_addr_t)
2820 if (get_info.offset == rxd_count[nic->rxd_mode]) {
2830 nic->pkts_to_process -= 1;
2831 if ((napi) && (!nic->pkts_to_process))
2837 if (nic->lro) {
2840 struct lro *lro = &nic->lro0_n[i];
2842 update_L3L4_header(nic, lro);
2849 spin_unlock(&nic->rx_lock);
2854 * @nic : device private variable
2866 struct s2io_nic *nic = fifo_data->nic;
2867 struct net_device *dev = (struct net_device *) nic->dev;
2885 nic->mac_control.stats_info->sw_stat.
2893 nic->mac_control.stats_info->sw_stat.
2898 nic->mac_control.stats_info->sw_stat.
2903 nic->mac_control.stats_info->sw_stat.
2908 nic->mac_control.stats_info->sw_stat.
2913 nic->mac_control.stats_info->sw_stat.
2928 nic->stats.tx_bytes += skb->len;
2929 nic->mac_control.stats_info->sw_stat.mem_freed += skb->truesize;
2941 spin_lock(&nic->tx_lock);
2944 spin_unlock(&nic->tx_lock);
3199 * @nic: device private variable
3209 static void alarm_intr_handler(struct s2io_nic *nic)
3211 struct net_device *dev = (struct net_device *) nic->dev;
3212 struct XENA_dev_config __iomem *bar0 = nic->bar0;
3216 if (atomic_read(&nic->card_state) == CARD_DOWN)
3218 nic->mac_control.stats_info->sw_stat.ring_full_cnt = 0;
3220 if(nic->mac_control.stats_info->xpak_stat.xpak_timer_count < 72000) {
3222 nic->mac_control.stats_info->xpak_stat.xpak_timer_count++;
3226 nic->mac_control.stats_info->xpak_stat.xpak_timer_count = 0;
3230 if (s2io_link_fault_indication(nic) == MAC_RMAC_ERR_TIMER) {
3234 schedule_work(&nic->set_link_task);
3243 nic->mac_control.stats_info->sw_stat.
3248 if (nic->device_type != XFRAME_II_DEVICE) {
3253 schedule_work(&nic->rst_timer_task);
3254 nic->mac_control.stats_info->sw_stat.
3259 nic->mac_control.stats_info->sw_stat.
3267 nic->mac_control.stats_info->sw_stat.serious_err_cnt++;
3272 schedule_work(&nic->rst_timer_task);
3273 nic->mac_control.stats_info->sw_stat.soft_reset_cnt++;
3289 schedule_work(&nic->set_link_task);
3296 nic->mac_control.stats_info->sw_stat.parity_err_cnt++;
3297 schedule_work(&nic->rst_timer_task);
3298 nic->mac_control.stats_info->sw_stat.soft_reset_cnt++;
3303 if (nic->device_type & XFRAME_II_DEVICE) {
3308 nic->mac_control.stats_info->sw_stat.ring_full_cnt
3316 nic->mac_control.stats_info->sw_stat.ring_full_cnt
3658 static int wait_for_msix_trans(struct s2io_nic *nic, int i)
3660 struct XENA_dev_config __iomem *bar0 = nic->bar0;
3679 static void restore_xmsi_data(struct s2io_nic *nic)
3681 struct XENA_dev_config __iomem *bar0 = nic->bar0;
3686 writeq(nic->msix_info[i].addr, &bar0->xmsi_address);
3687 writeq(nic->msix_info[i].data, &bar0->xmsi_data);
3690 if (wait_for_msix_trans(nic, i)) {
3697 static void store_xmsi_data(struct s2io_nic *nic)
3699 struct XENA_dev_config __iomem *bar0 = nic->bar0;
3707 if (wait_for_msix_trans(nic, i)) {
3714 nic->msix_info[i].addr = addr;
3715 nic->msix_info[i].data = data;
3720 int s2io_enable_msi(struct s2io_nic *nic)
3722 struct XENA_dev_config __iomem *bar0 = nic->bar0;
3724 struct config_param *config = &nic->config;
3725 struct net_device *dev = nic->dev;
3733 err = pci_enable_msi(nic->pdev);
3736 nic->dev->name);
3744 pci_read_config_word(nic->pdev, 0x4c, &msg_val);
3746 pci_write_config_word(nic->pdev, 0x4c, msg_val);
3747 pci_read_config_word(nic->pdev, 0x4c, &msg_val);
3749 pci_read_config_word(nic->pdev, 0x42, &msi_ctrl);
3751 pci_write_config_word(nic->pdev, 0x42, msi_ctrl);
3766 dev->irq = nic->pdev->irq;
3770 static int s2io_enable_msi_x(struct s2io_nic *nic)
3772 struct XENA_dev_config __iomem *bar0 = nic->bar0;
3777 nic->entries = kmalloc(MAX_REQUESTED_MSI_X * sizeof(struct msix_entry),
3779 if (nic->entries == NULL) {
3782 nic->mac_control.stats_info->sw_stat.mem_alloc_fail_cnt++;
3785 nic->mac_control.stats_info->sw_stat.mem_allocated
3787 memset(nic->entries, 0,MAX_REQUESTED_MSI_X * sizeof(struct msix_entry));
3789 nic->s2io_entries =
3792 if (nic->s2io_entries == NULL) {
3795 nic->mac_control.stats_info->sw_stat.mem_alloc_fail_cnt++;
3796 kfree(nic->entries);
3797 nic->mac_control.stats_info->sw_stat.mem_freed
3801 nic->mac_control.stats_info->sw_stat.mem_allocated
3803 memset(nic->s2io_entries, 0,
3807 nic->entries[i].entry = i;
3808 nic->s2io_entries[i].entry = i;
3809 nic->s2io_entries[i].arg = NULL;
3810 nic->s2io_entries[i].in_use = 0;
3814 for (i=0; i<nic->config.tx_fifo_num; i++, msix_indx++) {
3816 nic->s2io_entries[msix_indx].arg = &nic->mac_control.fifos[i];
3817 nic->s2io_entries[msix_indx].type = MSIX_FIFO_TYPE;
3818 nic->s2io_entries[msix_indx].in_use = MSIX_FLG;
3822 if (!nic->config.bimodal) {
3824 for (j=0; j<nic->config.rx_ring_num; j++, msix_indx++) {
3826 nic->s2io_entries[msix_indx].arg
3827 = &nic->mac_control.rings[j];
3828 nic->s2io_entries[msix_indx].type = MSIX_RING_TYPE;
3829 nic->s2io_entries[msix_indx].in_use = MSIX_FLG;
3834 for (j=0; j<nic->config.rx_ring_num; j++, msix_indx++) {
3836 nic->s2io_entries[msix_indx].arg
3837 = &nic->mac_control.rings[j];
3838 nic->s2io_entries[msix_indx].type = MSIX_RING_TYPE;
3839 nic->s2io_entries[msix_indx].in_use = MSIX_FLG;
3844 nic->avail_msix_vectors = 0;
3845 ret = pci_enable_msix(nic->pdev, nic->entries, MAX_REQUESTED_MSI_X);
3847 if (ret >= (nic->config.tx_fifo_num + nic->config.rx_ring_num + 1)) {
3848 nic->avail_msix_vectors = ret;
3849 ret = pci_enable_msix(nic->pdev, nic->entries, ret);
3852 DBG_PRINT(ERR_DBG, "%s: Enabling MSIX failed\n", nic->dev->name);
3853 kfree(nic->entries);
3854 nic->mac_control.stats_info->sw_stat.mem_freed
3856 kfree(nic->s2io_entries);
3857 nic->mac_control.stats_info->sw_stat.mem_freed
3859 nic->entries = NULL;
3860 nic->s2io_entries = NULL;
3861 nic->avail_msix_vectors = 0;
3864 if (!nic->avail_msix_vectors)
3865 nic->avail_msix_vectors = MAX_REQUESTED_MSI_X;
3871 pci_read_config_word(nic->pdev, 0x42, &msi_control);
3873 pci_write_config_word(nic->pdev, 0x42, msi_control);
4212 struct s2io_nic *sp = ring->nic;
4226 struct s2io_nic *sp = fifo->nic;
4851 * s2io_ethtool_idnic - To physically identify the nic on the system.
5125 static void s2io_vpd_read(struct s2io_nic *nic)
5132 if (nic->device_type == XFRAME_II_DEVICE) {
5133 strcpy(nic->product_name, "Xframe II 10GbE network adapter");
5137 strcpy(nic->product_name, "Xframe I 10GbE network adapter");
5140 strcpy(nic->serial_num, "NOT AVAILABLE");
5144 nic->mac_control.stats_info->sw_stat.mem_alloc_fail_cnt++;
5147 nic->mac_control.stats_info->sw_stat.mem_allocated += 256;
5150 pci_write_config_byte(nic->pdev, (vpd_addr + 2), i);
5151 pci_read_config_byte(nic->pdev, (vpd_addr + 2), &data);
5152 pci_write_config_byte(nic->pdev, (vpd_addr + 3), 0);
5155 pci_read_config_byte(nic->pdev, (vpd_addr + 3), &data);
5164 pci_read_config_dword(nic->pdev, (vpd_addr + 4),
5174 memset(nic->serial_num, 0, VPD_STRING_LEN);
5175 memcpy(nic->serial_num, &vpd_data[cnt + 3],
5183 memset(nic->product_name, 0, vpd_data[1]);
5184 memcpy(nic->product_name, &vpd_data[3], vpd_data[1]);
5187 nic->mac_control.stats_info->sw_stat.mem_freed += 256;
5483 * s2io-link_test - verifies the link state of the nic
6174 struct s2io_nic *nic = container_of(work, struct s2io_nic, set_link_task);
6175 struct net_device *dev = nic->dev;
6176 struct XENA_dev_config __iomem *bar0 = nic->bar0;
6185 if (test_and_set_bit(0, &(nic->link_state))) {
6190 subid = nic->pdev->subsystem_device;
6191 if (s2io_link_fault_indication(nic) == MAC_RMAC_ERR_TIMER) {
6202 if (verify_xena_quiescence(nic)) {
6207 nic->device_type, subid)) {
6216 nic->device_enabled_once = TRUE;
6229 s2io_link(nic, LINK_UP);
6231 if (CARDS_WITH_FAULTY_LINK_INDICATORS(nic->device_type,
6238 s2io_link(nic, LINK_DOWN);
6240 clear_bit(0, &(nic->link_state));
6801 struct s2io_nic *sp = ring_data->nic;
7152 * @nic: device peivate variable
7158 static int rts_ds_steer(struct s2io_nic *nic, u8 ds_codepoint, u8 ring)
7160 struct XENA_dev_config __iomem *bar0 = nic->bar0;