Lines Matching refs:nic

571 static int init_shared_mem(struct s2io_nic *nic)  in init_shared_mem()  argument
579 struct net_device *dev = nic->dev; in init_shared_mem()
582 struct config_param *config = &nic->config; in init_shared_mem()
583 struct mac_info *mac_control = &nic->mac_control; in init_shared_mem()
643 fifo->nic = nic; in init_shared_mem()
651 tmp_v = pci_alloc_consistent(nic->pdev, in init_shared_mem()
669 tmp_v = pci_alloc_consistent(nic->pdev, in init_shared_mem()
708 if (rx_cfg->num_rxd % (rxd_count[nic->rxd_mode] + 1)) { in init_shared_mem()
716 (rxd_count[nic->rxd_mode] + 1); in init_shared_mem()
719 if (nic->rxd_mode == RXD_MODE_1) in init_shared_mem()
734 ring->nic = nic; in init_shared_mem()
737 blk_cnt = rx_cfg->num_rxd / (rxd_count[nic->rxd_mode] + 1); in init_shared_mem()
745 tmp_v_addr = pci_alloc_consistent(nic->pdev, size, in init_shared_mem()
761 rxd_count[nic->rxd_mode]; in init_shared_mem()
768 for (l = 0; l < rxd_count[nic->rxd_mode]; l++) { in init_shared_mem()
771 (rxd_size[nic->rxd_mode] * l); in init_shared_mem()
774 (rxd_size[nic->rxd_mode] * l); in init_shared_mem()
792 if (nic->rxd_mode == RXD_MODE_3B) { in init_shared_mem()
802 (rxd_count[nic->rxd_mode] + 1); in init_shared_mem()
812 (rxd_count[nic->rxd_mode] + 1); in init_shared_mem()
817 while (k != rxd_count[nic->rxd_mode]) { in init_shared_mem()
847 pci_alloc_consistent(nic->pdev, size, in init_shared_mem()
865 dev_name(&nic->pdev->dev), (unsigned long long)tmp_p_addr); in init_shared_mem()
877 static void free_shared_mem(struct s2io_nic *nic) in free_shared_mem() argument
890 if (!nic) in free_shared_mem()
893 dev = nic->dev; in free_shared_mem()
895 config = &nic->config; in free_shared_mem()
896 mac_control = &nic->mac_control; in free_shared_mem()
918 pci_free_consistent(nic->pdev, PAGE_SIZE, in free_shared_mem()
927 pci_free_consistent(nic->pdev, PAGE_SIZE, in free_shared_mem()
951 pci_free_consistent(nic->pdev, size, in free_shared_mem()
956 rxd_count[nic->rxd_mode]; in free_shared_mem()
960 if (nic->rxd_mode == RXD_MODE_3B) { in free_shared_mem()
967 (rxd_count[nic->rxd_mode] + 1); in free_shared_mem()
972 while (k != rxd_count[nic->rxd_mode]) { in free_shared_mem()
984 (rxd_count[nic->rxd_mode] + 1); in free_shared_mem()
992 for (i = 0; i < nic->config.tx_fifo_num; i++) { in free_shared_mem()
1005 pci_free_consistent(nic->pdev, in free_shared_mem()
1016 static int s2io_verify_pci_mode(struct s2io_nic *nic) in s2io_verify_pci_mode() argument
1018 struct XENA_dev_config __iomem *bar0 = nic->bar0; in s2io_verify_pci_mode()
1050 static int s2io_print_pci_mode(struct s2io_nic *nic) in s2io_print_pci_mode() argument
1052 struct XENA_dev_config __iomem *bar0 = nic->bar0; in s2io_print_pci_mode()
1055 struct config_param *config = &nic->config; in s2io_print_pci_mode()
1066 if (s2io_on_nec_bridge(nic->pdev)) { in s2io_print_pci_mode()
1068 nic->dev->name); in s2io_print_pci_mode()
1103 nic->dev->name, val64 & PCI_MODE_32_BITS ? 32 : 64, pcimode); in s2io_print_pci_mode()
1118 static int init_tti(struct s2io_nic *nic, int link) in init_tti() argument
1120 struct XENA_dev_config __iomem *bar0 = nic->bar0; in init_tti()
1123 struct config_param *config = &nic->config; in init_tti()
1131 if (nic->device_type == XFRAME_II_DEVICE) { in init_tti()
1132 int count = (nic->config.bus_speed * 125)/2; in init_tti()
1146 if (nic->config.intr_type == MSI_X) { in init_tti()
1152 if ((nic->config.tx_steering_type == in init_tti()
1155 (i >= nic->udp_fifo_idx) && in init_tti()
1156 (i < (nic->udp_fifo_idx + in init_tti()
1157 nic->total_udp_fifos))) in init_tti()
1194 static int init_nic(struct s2io_nic *nic) in init_nic() argument
1196 struct XENA_dev_config __iomem *bar0 = nic->bar0; in init_nic()
1197 struct net_device *dev = nic->dev; in init_nic()
1205 struct config_param *config = &nic->config; in init_nic()
1206 struct mac_info *mac_control = &nic->mac_control; in init_nic()
1209 if (s2io_set_swapper(nic)) { in init_nic()
1217 if (nic->device_type & XFRAME_II_DEVICE) { in init_nic()
1233 if (nic->device_type == XFRAME_II_DEVICE) { in init_nic()
1262 if (nic->device_type & XFRAME_II_DEVICE) { in init_nic()
1328 if ((nic->device_type == XFRAME_I_DEVICE) && (nic->pdev->revision < 4)) in init_nic()
1360 if (nic->device_type & XFRAME_II_DEVICE) in init_nic()
1641 if (rts_ds_steer(nic, i, 0) == FAILURE) { in init_nic()
1652 if (nic->device_type == XFRAME_II_DEVICE) { in init_nic()
1671 if (SUCCESS != init_tti(nic, nic->last_link_state)) in init_nic()
1675 if (nic->device_type == XFRAME_II_DEVICE) { in init_nic()
1680 int count = (nic->config.bus_speed * 125)/4; in init_nic()
1693 if (nic->config.intr_type == MSI_X) in init_nic()
1751 if (nic->device_type == XFRAME_II_DEVICE) in init_nic()
1766 val64 |= RMAC_PAUSE_HG_PTIME(nic->mac_control.rmac_pause_time); in init_nic()
1778 nic->mac_control.mc_pause_threshold_q0q3) in init_nic()
1786 nic->mac_control.mc_pause_threshold_q4q7) in init_nic()
1799 if (nic->config.bus_speed == 266) { in init_nic()
1809 if (nic->device_type == XFRAME_II_DEVICE) { in init_nic()
1817 if (strstr(nic->product_name, "CX4")) { in init_nic()
1827 static int s2io_link_fault_indication(struct s2io_nic *nic) in s2io_link_fault_indication() argument
1829 if (nic->device_type == XFRAME_II_DEVICE) in s2io_link_fault_indication()
1857 static void en_dis_err_alarms(struct s2io_nic *nic, u16 mask, int flag) in en_dis_err_alarms() argument
1859 struct XENA_dev_config __iomem *bar0 = nic->bar0; in en_dis_err_alarms()
1956 if (s2io_link_fault_indication(nic) == MAC_RMAC_ERR_TIMER) in en_dis_err_alarms()
1978 nic->general_int_mask = gen_int_mask; in en_dis_err_alarms()
1981 nic->general_int_mask = 0; in en_dis_err_alarms()
1995 static void en_dis_able_nic_intrs(struct s2io_nic *nic, u16 mask, int flag) in en_dis_able_nic_intrs() argument
1997 struct XENA_dev_config __iomem *bar0 = nic->bar0; in en_dis_able_nic_intrs()
2000 intr_mask = nic->general_int_mask; in en_dis_able_nic_intrs()
2014 if (s2io_link_fault_indication(nic) == in en_dis_able_nic_intrs()
2071 nic->general_int_mask = readq(&bar0->general_int_mask); in en_dis_able_nic_intrs()
2211 static int start_nic(struct s2io_nic *nic) in start_nic() argument
2213 struct XENA_dev_config __iomem *bar0 = nic->bar0; in start_nic()
2214 struct net_device *dev = nic->dev; in start_nic()
2217 struct config_param *config = &nic->config; in start_nic()
2218 struct mac_info *mac_control = &nic->mac_control; in start_nic()
2228 if (nic->rxd_mode == RXD_MODE_1) in start_nic()
2232 if (nic->device_type == XFRAME_II_DEVICE) in start_nic()
2239 if (nic->rxd_mode == RXD_MODE_3B) { in start_nic()
2250 nic->vlan_strip_flag = 0; in start_nic()
2275 if (!verify_xena_quiescence(nic)) { in start_nic()
2295 if (s2io_link_fault_indication(nic) == MAC_RMAC_ERR_TIMER) { in start_nic()
2300 schedule_work(&nic->set_link_task); in start_nic()
2303 subid = nic->pdev->subsystem_device; in start_nic()
2305 (nic->device_type == XFRAME_I_DEVICE)) { in start_nic()
2321 struct s2io_nic *nic = fifo_data->nic; in s2io_txdl_getskb() local
2328 pci_unmap_single(nic->pdev, (dma_addr_t)txds->Buffer_Pointer, in s2io_txdl_getskb()
2338 pci_unmap_single(nic->pdev, (dma_addr_t)txds->Buffer_Pointer, in s2io_txdl_getskb()
2347 pci_unmap_page(nic->pdev, in s2io_txdl_getskb()
2364 static void free_tx_buffers(struct s2io_nic *nic) in free_tx_buffers() argument
2366 struct net_device *dev = nic->dev; in free_tx_buffers()
2371 struct config_param *config = &nic->config; in free_tx_buffers()
2372 struct mac_info *mac_control = &nic->mac_control; in free_tx_buffers()
2410 static void stop_nic(struct s2io_nic *nic) in stop_nic() argument
2412 struct XENA_dev_config __iomem *bar0 = nic->bar0; in stop_nic()
2417 en_dis_err_alarms(nic, ENA_ALL_INTRS, DISABLE_INTRS); in stop_nic()
2420 en_dis_able_nic_intrs(nic, interruptible, DISABLE_INTRS); in stop_nic()
2450 static int fill_rx_buffers(struct s2io_nic *nic, struct ring_info *ring, in fill_rx_buffers() argument
2465 struct swStat *swstats = &ring->nic->mac_control.stats_info->sw_stat; in fill_rx_buffers()
2518 skb = netdev_alloc_skb(nic->dev, size); in fill_rx_buffers()
2541 if (pci_dma_mapping_error(nic->pdev, in fill_rx_buffers()
2577 if (pci_dma_mapping_error(nic->pdev, in fill_rx_buffers()
2599 if (pci_dma_mapping_error(nic->pdev, in fill_rx_buffers()
2610 if (pci_dma_mapping_error(nic->pdev, in fill_rx_buffers()
2746 static int s2io_chk_rx_buffers(struct s2io_nic *nic, struct ring_info *ring) in s2io_chk_rx_buffers() argument
2748 if (fill_rx_buffers(nic, ring, 0) == -ENOMEM) { in s2io_chk_rx_buffers()
2775 struct s2io_nic *nic = netdev_priv(dev); in s2io_poll_msix() local
2776 struct XENA_dev_config __iomem *bar0 = nic->bar0; in s2io_poll_msix()
2779 if (unlikely(!is_s2io_card_up(nic))) in s2io_poll_msix()
2783 s2io_chk_rx_buffers(nic, ring); in s2io_poll_msix()
2799 struct s2io_nic *nic = container_of(napi, struct s2io_nic, napi); in s2io_poll_inta() local
2802 struct XENA_dev_config __iomem *bar0 = nic->bar0; in s2io_poll_inta()
2804 struct config_param *config = &nic->config; in s2io_poll_inta()
2805 struct mac_info *mac_control = &nic->mac_control; in s2io_poll_inta()
2807 if (unlikely(!is_s2io_card_up(nic))) in s2io_poll_inta()
2813 s2io_chk_rx_buffers(nic, ring); in s2io_poll_inta()
2840 struct s2io_nic *nic = netdev_priv(dev); in s2io_netpoll() local
2841 const int irq = nic->pdev->irq; in s2io_netpoll()
2842 struct XENA_dev_config __iomem *bar0 = nic->bar0; in s2io_netpoll()
2845 struct config_param *config = &nic->config; in s2io_netpoll()
2846 struct mac_info *mac_control = &nic->mac_control; in s2io_netpoll()
2848 if (pci_channel_offline(nic->pdev)) in s2io_netpoll()
2873 if (fill_rx_buffers(nic, ring, 0) == -ENOMEM) { in s2io_netpoll()
2970 if (ring_data->nic->config.napi) { in rx_intr_handler()
2985 update_L3L4_header(ring_data->nic, lro); in rx_intr_handler()
3008 struct s2io_nic *nic = fifo_data->nic; in tx_intr_handler() local
3015 struct stat_block *stats = nic->mac_control.stats_info; in tx_intr_handler()
3080 s2io_wake_tx_queue(fifo_data, pkt_cnt, nic->config.multiq); in tx_intr_handler()
3660 static int wait_for_msix_trans(struct s2io_nic *nic, int i) in wait_for_msix_trans() argument
3662 struct XENA_dev_config __iomem *bar0 = nic->bar0; in wait_for_msix_trans()
3681 static void restore_xmsi_data(struct s2io_nic *nic) in restore_xmsi_data() argument
3683 struct XENA_dev_config __iomem *bar0 = nic->bar0; in restore_xmsi_data()
3687 if (nic->device_type == XFRAME_I_DEVICE) in restore_xmsi_data()
3692 writeq(nic->msix_info[i].addr, &bar0->xmsi_address); in restore_xmsi_data()
3693 writeq(nic->msix_info[i].data, &bar0->xmsi_data); in restore_xmsi_data()
3696 if (wait_for_msix_trans(nic, msix_index)) { in restore_xmsi_data()
3704 static void store_xmsi_data(struct s2io_nic *nic) in store_xmsi_data() argument
3706 struct XENA_dev_config __iomem *bar0 = nic->bar0; in store_xmsi_data()
3710 if (nic->device_type == XFRAME_I_DEVICE) in store_xmsi_data()
3718 if (wait_for_msix_trans(nic, msix_index)) { in store_xmsi_data()
3726 nic->msix_info[i].addr = addr; in store_xmsi_data()
3727 nic->msix_info[i].data = data; in store_xmsi_data()
3732 static int s2io_enable_msi_x(struct s2io_nic *nic) in s2io_enable_msi_x() argument
3734 struct XENA_dev_config __iomem *bar0 = nic->bar0; in s2io_enable_msi_x()
3739 struct stat_block *stats = nic->mac_control.stats_info; in s2io_enable_msi_x()
3742 size = nic->num_entries * sizeof(struct msix_entry); in s2io_enable_msi_x()
3743 nic->entries = kzalloc(size, GFP_KERNEL); in s2io_enable_msi_x()
3744 if (!nic->entries) { in s2io_enable_msi_x()
3752 size = nic->num_entries * sizeof(struct s2io_msix_entry); in s2io_enable_msi_x()
3753 nic->s2io_entries = kzalloc(size, GFP_KERNEL); in s2io_enable_msi_x()
3754 if (!nic->s2io_entries) { in s2io_enable_msi_x()
3758 kfree(nic->entries); in s2io_enable_msi_x()
3760 += (nic->num_entries * sizeof(struct msix_entry)); in s2io_enable_msi_x()
3765 nic->entries[0].entry = 0; in s2io_enable_msi_x()
3766 nic->s2io_entries[0].entry = 0; in s2io_enable_msi_x()
3767 nic->s2io_entries[0].in_use = MSIX_FLG; in s2io_enable_msi_x()
3768 nic->s2io_entries[0].type = MSIX_ALARM_TYPE; in s2io_enable_msi_x()
3769 nic->s2io_entries[0].arg = &nic->mac_control.fifos; in s2io_enable_msi_x()
3771 for (i = 1; i < nic->num_entries; i++) { in s2io_enable_msi_x()
3772 nic->entries[i].entry = ((i - 1) * 8) + 1; in s2io_enable_msi_x()
3773 nic->s2io_entries[i].entry = ((i - 1) * 8) + 1; in s2io_enable_msi_x()
3774 nic->s2io_entries[i].arg = NULL; in s2io_enable_msi_x()
3775 nic->s2io_entries[i].in_use = 0; in s2io_enable_msi_x()
3779 for (j = 0; j < nic->config.rx_ring_num; j++) { in s2io_enable_msi_x()
3781 nic->s2io_entries[j+1].arg = &nic->mac_control.rings[j]; in s2io_enable_msi_x()
3782 nic->s2io_entries[j+1].type = MSIX_RING_TYPE; in s2io_enable_msi_x()
3783 nic->s2io_entries[j+1].in_use = MSIX_FLG; in s2io_enable_msi_x()
3789 ret = pci_enable_msix_range(nic->pdev, nic->entries, in s2io_enable_msi_x()
3790 nic->num_entries, nic->num_entries); in s2io_enable_msi_x()
3794 kfree(nic->entries); in s2io_enable_msi_x()
3795 swstats->mem_freed += nic->num_entries * in s2io_enable_msi_x()
3797 kfree(nic->s2io_entries); in s2io_enable_msi_x()
3798 swstats->mem_freed += nic->num_entries * in s2io_enable_msi_x()
3800 nic->entries = NULL; in s2io_enable_msi_x()
3801 nic->s2io_entries = NULL; in s2io_enable_msi_x()
3809 pci_read_config_word(nic->pdev, 0x42, &msi_control); in s2io_enable_msi_x()
3811 pci_write_config_word(nic->pdev, 0x42, msi_control); in s2io_enable_msi_x()
4256 struct s2io_nic *sp = ring->nic; in s2io_msix_ring_handle()
4284 struct s2io_nic *sp = fifos->nic; in s2io_msix_fifo_handle()
5723 static void s2io_vpd_read(struct s2io_nic *nic) in s2io_vpd_read() argument
5729 struct swStat *swstats = &nic->mac_control.stats_info->sw_stat; in s2io_vpd_read()
5731 if (nic->device_type == XFRAME_II_DEVICE) { in s2io_vpd_read()
5732 strcpy(nic->product_name, "Xframe II 10GbE network adapter"); in s2io_vpd_read()
5735 strcpy(nic->product_name, "Xframe I 10GbE network adapter"); in s2io_vpd_read()
5738 strcpy(nic->serial_num, "NOT AVAILABLE"); in s2io_vpd_read()
5748 pci_write_config_byte(nic->pdev, (vpd_addr + 2), i); in s2io_vpd_read()
5749 pci_read_config_byte(nic->pdev, (vpd_addr + 2), &data); in s2io_vpd_read()
5750 pci_write_config_byte(nic->pdev, (vpd_addr + 3), 0); in s2io_vpd_read()
5753 pci_read_config_byte(nic->pdev, (vpd_addr + 3), &data); in s2io_vpd_read()
5762 pci_read_config_dword(nic->pdev, (vpd_addr + 4), in s2io_vpd_read()
5773 memcpy(nic->serial_num, in s2io_vpd_read()
5776 memset(nic->serial_num+len, in s2io_vpd_read()
5787 memcpy(nic->product_name, &vpd_data[3], len); in s2io_vpd_read()
5788 nic->product_name[len] = 0; in s2io_vpd_read()
6722 struct s2io_nic *nic = container_of(work, struct s2io_nic, in s2io_set_link() local
6724 struct net_device *dev = nic->dev; in s2io_set_link()
6725 struct XENA_dev_config __iomem *bar0 = nic->bar0; in s2io_set_link()
6734 if (test_and_set_bit(__S2IO_STATE_LINK_TASK, &(nic->state))) { in s2io_set_link()
6739 subid = nic->pdev->subsystem_device; in s2io_set_link()
6740 if (s2io_link_fault_indication(nic) == MAC_RMAC_ERR_TIMER) { in s2io_set_link()
6751 if (verify_xena_quiescence(nic)) { in s2io_set_link()
6756 nic->device_type, subid)) { in s2io_set_link()
6765 nic->device_enabled_once = true; in s2io_set_link()
6770 s2io_stop_all_tx_queue(nic); in s2io_set_link()
6776 s2io_link(nic, LINK_UP); in s2io_set_link()
6778 if (CARDS_WITH_FAULTY_LINK_INDICATORS(nic->device_type, in s2io_set_link()
6789 s2io_link(nic, LINK_DOWN); in s2io_set_link()
6791 clear_bit(__S2IO_STATE_LINK_TASK, &(nic->state)); in s2io_set_link()
7327 struct s2io_nic *sp = ring_data->nic; in rx_osm_handler()
7652 static int rts_ds_steer(struct s2io_nic *nic, u8 ds_codepoint, u8 ring) in rts_ds_steer() argument
7654 struct XENA_dev_config __iomem *bar0 = nic->bar0; in rts_ds_steer()