Lines Matching refs:nesadapter
69 struct nes_adapter *nesadapter, u8 OneG_Mode);
127 struct nes_adapter *nesadapter = nesdev->nesadapter; in nes_nic_init_timer_defaults() local
128 struct nes_hw_tune_timer *shared_timer = &nesadapter->tune_timer; in nes_nic_init_timer_defaults()
130 spin_lock_irqsave(&nesadapter->periodic_timer_lock, flags); in nes_nic_init_timer_defaults()
145 spin_unlock_irqrestore(&nesadapter->periodic_timer_lock, flags); in nes_nic_init_timer_defaults()
155 struct nes_adapter *nesadapter = nesdev->nesadapter; in nes_nic_init_timer() local
156 struct nes_hw_tune_timer *shared_timer = &nesadapter->tune_timer; in nes_nic_init_timer()
158 spin_lock_irqsave(&nesadapter->periodic_timer_lock, flags); in nes_nic_init_timer()
174 spin_unlock_irqrestore(&nesadapter->periodic_timer_lock, flags); in nes_nic_init_timer()
184 struct nes_adapter *nesadapter = nesdev->nesadapter; in nes_nic_tune_timer() local
185 struct nes_hw_tune_timer *shared_timer = &nesadapter->tune_timer; in nes_nic_tune_timer()
188 spin_lock_irqsave(&nesadapter->periodic_timer_lock, flags); in nes_nic_tune_timer()
201 spin_unlock_irqrestore(&nesadapter->periodic_timer_lock, flags); in nes_nic_tune_timer()
247 spin_unlock_irqrestore(&nesadapter->periodic_timer_lock, flags); in nes_nic_tune_timer()
255 struct nes_adapter *nesadapter = NULL; in nes_init_adapter() local
276 list_for_each_entry(nesadapter, &nes_adapter_list, list) { in nes_init_adapter()
280 PCI_SLOT(nesadapter->devfn), in nes_init_adapter()
281 nesadapter->bus_number, in nes_init_adapter()
284 if ((PCI_SLOT(nesadapter->devfn) == PCI_SLOT(nesdev->pcidev->devfn)) && in nes_init_adapter()
285 (nesadapter->bus_number == nesdev->pcidev->bus->number)) { in nes_init_adapter()
286 nesadapter->ref_count++; in nes_init_adapter()
287 return nesadapter; in nes_init_adapter()
360 nesadapter = kzalloc(adapter_size, GFP_KERNEL); in nes_init_adapter()
361 if (nesadapter == NULL) { in nes_init_adapter()
366 nesadapter, (u32)sizeof(struct nes_adapter), adapter_size); in nes_init_adapter()
368 if (nes_read_eeprom_values(nesdev, nesadapter)) { in nes_init_adapter()
370 kfree(nesadapter); in nes_init_adapter()
374 nesadapter->vendor_id = (((u32) nesadapter->mac_addr_high) << 8) | in nes_init_adapter()
375 (nesadapter->mac_addr_low >> 24); in nes_init_adapter()
379 nesadapter->vendor_part_id = device_id; in nes_init_adapter()
381 if (nes_init_serdes(nesdev, hw_rev, port_count, nesadapter, in nes_init_adapter()
383 kfree(nesadapter); in nes_init_adapter()
388 memset(nesadapter->pft_mcast_map, 255, in nes_init_adapter()
389 sizeof nesadapter->pft_mcast_map); in nes_init_adapter()
392 nesadapter->devfn = nesdev->pcidev->devfn; in nes_init_adapter()
393 nesadapter->bus_number = nesdev->pcidev->bus->number; in nes_init_adapter()
394 nesadapter->ref_count = 1; in nes_init_adapter()
395 nesadapter->timer_int_req = 0xffff0000; in nes_init_adapter()
396 nesadapter->OneG_Mode = OneG_Mode; in nes_init_adapter()
397 nesadapter->doorbell_start = nesdev->doorbell_region; in nes_init_adapter()
400 nesadapter->hw_rev = hw_rev; in nes_init_adapter()
401 nesadapter->port_count = port_count; in nes_init_adapter()
403 nesadapter->max_qp = max_qp; in nes_init_adapter()
404 nesadapter->hte_index_mask = hte_index_mask; in nes_init_adapter()
405 nesadapter->max_irrq = max_irrq; in nes_init_adapter()
406 nesadapter->max_mr = max_mr; in nes_init_adapter()
407 nesadapter->max_256pbl = max_256pbl - 1; in nes_init_adapter()
408 nesadapter->max_4kpbl = max_4kpbl - 1; in nes_init_adapter()
409 nesadapter->max_cq = max_cq; in nes_init_adapter()
410 nesadapter->free_256pbl = max_256pbl - 1; in nes_init_adapter()
411 nesadapter->free_4kpbl = max_4kpbl - 1; in nes_init_adapter()
412 nesadapter->max_pd = num_pds; in nes_init_adapter()
413 nesadapter->arp_table_size = arp_table_size; in nes_init_adapter()
415 nesadapter->et_pkt_rate_low = NES_TIMER_ENABLE_LIMIT; in nes_init_adapter()
417 nesadapter->et_use_adaptive_rx_coalesce = 0; in nes_init_adapter()
418 nesadapter->timer_int_limit = NES_TIMER_INT_LIMIT; in nes_init_adapter()
419 nesadapter->et_rx_coalesce_usecs_irq = interrupt_mod_interval; in nes_init_adapter()
421 nesadapter->et_use_adaptive_rx_coalesce = 1; in nes_init_adapter()
422 nesadapter->timer_int_limit = NES_TIMER_INT_LIMIT_DYNAMIC; in nes_init_adapter()
423 nesadapter->et_rx_coalesce_usecs_irq = 0; in nes_init_adapter()
427 if (nesadapter->et_rx_coalesce_usecs_irq) in nes_init_adapter()
429 ((u32)(nesadapter->et_rx_coalesce_usecs_irq * 8))); in nes_init_adapter()
433 nesadapter->base_pd = 1; in nes_init_adapter()
435 nesadapter->device_cap_flags = IB_DEVICE_LOCAL_DMA_LKEY | in nes_init_adapter()
439 nesadapter->allocated_qps = (unsigned long *)&(((unsigned char *)nesadapter) in nes_init_adapter()
441 nesadapter->allocated_cqs = &nesadapter->allocated_qps[BITS_TO_LONGS(max_qp)]; in nes_init_adapter()
442 nesadapter->allocated_mrs = &nesadapter->allocated_cqs[BITS_TO_LONGS(max_cq)]; in nes_init_adapter()
443 nesadapter->allocated_pds = &nesadapter->allocated_mrs[BITS_TO_LONGS(max_mr)]; in nes_init_adapter()
444 nesadapter->allocated_arps = &nesadapter->allocated_pds[BITS_TO_LONGS(num_pds)]; in nes_init_adapter()
445 …nesadapter->qp_table = (struct nes_qp **)(&nesadapter->allocated_arps[BITS_TO_LONGS(arp_table_size… in nes_init_adapter()
450 set_bit(u32temp, nesadapter->allocated_qps); in nes_init_adapter()
451 set_bit(u32temp, nesadapter->allocated_cqs); in nes_init_adapter()
453 set_bit(0, nesadapter->allocated_mrs); in nes_init_adapter()
456 set_bit(u32temp, nesadapter->allocated_pds); in nes_init_adapter()
490 nesadapter->max_qp_wr = min(max_rq_wrs, max_sq_wrs); in nes_init_adapter()
491 nesadapter->max_irrq_wr = (u32temp >> 16) & 3; in nes_init_adapter()
493 nesadapter->max_sge = 4; in nes_init_adapter()
494 nesadapter->max_cqe = 32766; in nes_init_adapter()
496 if (nes_read_eeprom_values(nesdev, nesadapter)) { in nes_init_adapter()
498 kfree(nesadapter); in nes_init_adapter()
504 (u32temp & 0xff000000) | (nesadapter->tcp_timer_core_clk_divisor & 0x00ffffff)); in nes_init_adapter()
507 if (nesadapter->port_count == 1) { in nes_init_adapter()
508 nesadapter->log_port = 0x00000000; in nes_init_adapter()
514 if (nesadapter->phy_type[0] == NES_PHY_TYPE_PUMA_1G) { in nes_init_adapter()
515 nesadapter->log_port = 0x000000D8; in nes_init_adapter()
517 if (nesadapter->port_count == 2) in nes_init_adapter()
518 nesadapter->log_port = 0x00000044; in nes_init_adapter()
520 nesadapter->log_port = 0x000000e4; in nes_init_adapter()
526 nesadapter->log_port); in nes_init_adapter()
530 spin_lock_init(&nesadapter->resource_lock); in nes_init_adapter()
531 spin_lock_init(&nesadapter->phy_lock); in nes_init_adapter()
532 spin_lock_init(&nesadapter->pbl_lock); in nes_init_adapter()
533 spin_lock_init(&nesadapter->periodic_timer_lock); in nes_init_adapter()
535 INIT_LIST_HEAD(&nesadapter->nesvnic_list[0]); in nes_init_adapter()
536 INIT_LIST_HEAD(&nesadapter->nesvnic_list[1]); in nes_init_adapter()
537 INIT_LIST_HEAD(&nesadapter->nesvnic_list[2]); in nes_init_adapter()
538 INIT_LIST_HEAD(&nesadapter->nesvnic_list[3]); in nes_init_adapter()
540 if ((!nesadapter->OneG_Mode) && (nesadapter->port_count == 2)) { in nes_init_adapter()
565 spin_lock_irqsave(&nesadapter->phy_lock, flags); in nes_init_adapter()
574 spin_unlock_irqrestore(&nesadapter->phy_lock, flags); in nes_init_adapter()
589 spin_lock_irqsave(&nesadapter->phy_lock, flags); in nes_init_adapter()
599 spin_unlock_irqrestore(&nesadapter->phy_lock, flags); in nes_init_adapter()
608 if (nesadapter->hw_rev == NE020_REV) { in nes_init_adapter()
609 init_timer(&nesadapter->mh_timer); in nes_init_adapter()
610 nesadapter->mh_timer.function = nes_mh_fix; in nes_init_adapter()
611 nesadapter->mh_timer.expires = jiffies + (HZ/5); /* 1 second */ in nes_init_adapter()
612 nesadapter->mh_timer.data = (unsigned long)nesdev; in nes_init_adapter()
613 add_timer(&nesadapter->mh_timer); in nes_init_adapter()
618 init_timer(&nesadapter->lc_timer); in nes_init_adapter()
619 nesadapter->lc_timer.function = nes_clc; in nes_init_adapter()
620 nesadapter->lc_timer.expires = jiffies + 3600 * HZ; /* 1 hour */ in nes_init_adapter()
621 nesadapter->lc_timer.data = (unsigned long)nesdev; in nes_init_adapter()
622 add_timer(&nesadapter->lc_timer); in nes_init_adapter()
624 list_add_tail(&nesadapter->list, &nes_adapter_list); in nes_init_adapter()
635 nesadapter->adapter_fcn_count = func_index; in nes_init_adapter()
637 return nesadapter; in nes_init_adapter()
751 struct nes_adapter *nesadapter, u8 OneG_Mode) in nes_init_serdes() argument
759 switch (nesadapter->phy_type[0]) { in nes_init_serdes()
788 if (!(OneG_Mode && (nesadapter->phy_type[1] != NES_PHY_TYPE_PUMA_1G))) in nes_init_serdes()
791 switch (nesadapter->phy_type[1]) { in nes_init_serdes()
955 void nes_destroy_adapter(struct nes_adapter *nesadapter) in nes_destroy_adapter() argument
964 nesadapter->ref_count--; in nes_destroy_adapter()
965 if (!nesadapter->ref_count) { in nes_destroy_adapter()
966 if (nesadapter->hw_rev == NE020_REV) { in nes_destroy_adapter()
967 del_timer(&nesadapter->mh_timer); in nes_destroy_adapter()
969 del_timer(&nesadapter->lc_timer); in nes_destroy_adapter()
971 list_del(&nesadapter->list); in nes_destroy_adapter()
972 kfree(nesadapter); in nes_destroy_adapter()
982 struct nes_adapter *nesadapter = nesdev->nesadapter; in nes_init_cqp() local
1003 (sizeof(struct nes_hw_aeqe) * nesadapter->max_qp) + in nes_init_cqp()
1057 ceq = &nesadapter->ceq[nesdev->ceq_index]; in nes_init_cqp()
1067 nic_ceq = &nesadapter->ceq[nesdev->nic_ceq_index]; in nes_init_cqp()
1076 aeq = &nesadapter->aeq[PCI_FUNC(nesdev->pcidev->devfn)]; in nes_init_cqp()
1079 aeq->aeq_size = nesadapter->max_qp; in nes_init_cqp()
1515 struct nes_adapter *nesadapter = nesdev->nesadapter; in nes_init_phy() local
1519 u8 phy_type = nesadapter->phy_type[mac_index]; in nes_init_phy()
1520 u8 phy_index = nesadapter->phy_index[mac_index]; in nes_init_phy()
1535 spin_lock_irqsave(&nesdev->nesadapter->phy_lock, flags); in nes_init_phy()
1548 spin_unlock_irqrestore(&nesdev->nesadapter->phy_lock, flags); in nes_init_phy()
1759 if (nesdev->nesadapter->netdev_count > 2) in nes_init_nic_qp()
1884 if (nesdev->nesadapter->et_use_adaptive_rx_coalesce) in nes_init_nic_qp()
1891 if ((nesdev->nesadapter->allow_unaligned_fpdus) && in nes_init_nic_qp()
1929 if (nesdev->nesadapter->allow_unaligned_fpdus) in nes_destroy_nic_qp()
2062 struct nes_adapter *nesadapter = nesdev->nesadapter; in nes_napi_isr() local
2083 nes_process_ceq(nesdev, &nesdev->nesadapter->ceq[nesdev->nic_ceq_index]); in nes_napi_isr()
2085 if (unlikely((((nesadapter->et_rx_coalesce_usecs_irq) && in nes_napi_isr()
2086 (!nesadapter->et_use_adaptive_rx_coalesce)) || in nes_napi_isr()
2087 ((nesadapter->et_use_adaptive_rx_coalesce) && in nes_napi_isr()
2088 (nesdev->deepcq_count > nesadapter->et_pkt_rate_low))))) { in nes_napi_isr()
2095 nesdev->timer_int_req | ~(nesdev->nesadapter->timer_int_req)); in nes_napi_isr()
2100 if (unlikely(nesadapter->et_use_adaptive_rx_coalesce)) in nes_napi_isr()
2133 if (++nesdev->nesadapter->crit_error_count[error_module-1] >= in process_critical_error()
2149 struct nes_adapter *nesadapter = nesdev->nesadapter; in nes_dpc() local
2199 nes_process_ceq(nesdev, &nesadapter->ceq[counter]); in nes_dpc()
2211 nes_process_aeq(nesdev, &nesadapter->aeq[PCI_FUNC(nesdev->pcidev->devfn)]); in nes_dpc()
2224 ~(nesdev->nesadapter->timer_int_req)); in nes_dpc()
2256 if ((nesadapter->et_rx_coalesce_usecs_irq) || (nesadapter->et_use_adaptive_rx_coalesce)) { in nes_dpc()
2259 if (nesdev->timer_only_int_count>=nesadapter->timer_int_limit) { in nes_dpc()
2268 if (unlikely(nesadapter->et_use_adaptive_rx_coalesce)) in nes_dpc()
2280 nesdev->timer_int_req | ~(nesdev->nesadapter->timer_int_req)); in nes_dpc()
2285 (((nesadapter->et_rx_coalesce_usecs_irq) && in nes_dpc()
2286 (!nesadapter->et_use_adaptive_rx_coalesce)) || in nes_dpc()
2287 ((nesdev->deepcq_count > nesadapter->et_pkt_rate_low) && in nes_dpc()
2288 (nesadapter->et_use_adaptive_rx_coalesce) )) ) { in nes_dpc()
2293 nesdev->timer_int_req | ~(nesdev->nesadapter->timer_int_req)); in nes_dpc()
2394 struct nes_adapter *nesadapter = nesdev->nesadapter; in nes_reset_link() local
2399 if (nesadapter->hw_rev == NE020_REV) { in nes_reset_link()
2406 if ((mac_index == 0) || ((mac_index == 1) && (nesadapter->OneG_Mode))) in nes_reset_link()
2411 if (4 <= (nesadapter->link_interrupt_count[mac_index] / ((u16)NES_MAX_LINK_INTERRUPTS))) { in nes_reset_link()
2412 if ((!nesadapter->OneG_Mode) && (nesadapter->port_count == 2)) { in nes_reset_link()
2413 nesadapter->link_interrupt_count[0] = 0; in nes_reset_link()
2414 nesadapter->link_interrupt_count[1] = 0; in nes_reset_link()
2423 nesadapter->link_interrupt_count[mac_index] = 0; in nes_reset_link()
2467 struct nes_adapter *nesadapter = nesdev->nesadapter; in nes_process_mac_intr() local
2478 spin_lock_irqsave(&nesadapter->phy_lock, flags); in nes_process_mac_intr()
2479 if (nesadapter->mac_sw_state[mac_number] != NES_MAC_SW_IDLE) { in nes_process_mac_intr()
2480 spin_unlock_irqrestore(&nesadapter->phy_lock, flags); in nes_process_mac_intr()
2483 nesadapter->mac_sw_state[mac_number] = NES_MAC_SW_INTERRUPT; in nes_process_mac_intr()
2494 if (0 == (++nesadapter->link_interrupt_count[mac_index] % ((u16)NES_MAX_LINK_INTERRUPTS))) in nes_process_mac_intr()
2498 if ((nesadapter->OneG_Mode) && in nes_process_mac_intr()
2499 (nesadapter->phy_type[mac_index] != NES_PHY_TYPE_PUMA_1G)) { in nes_process_mac_intr()
2502 nesadapter->phy_index[mac_index], &phy_data); in nes_process_mac_intr()
2504 nesadapter->phy_index[mac_index], phy_data); in nes_process_mac_intr()
2510 nesadapter->phy_index[mac_index], &phy_data); in nes_process_mac_intr()
2512 nesadapter->phy_index[mac_index], phy_data); in nes_process_mac_intr()
2519 nesadapter->phy_index[mac_index], &phy_data); in nes_process_mac_intr()
2521 nesadapter->phy_index[mac_index], phy_data); in nes_process_mac_intr()
2524 nesadapter->phy_index[mac_index], &phy_data); in nes_process_mac_intr()
2526 nesadapter->phy_index[mac_index], phy_data); in nes_process_mac_intr()
2539 if (nesadapter->phy_type[mac_index] == NES_PHY_TYPE_PUMA_1G) { in nes_process_mac_intr()
2560 if ((nesadapter->OneG_Mode) && in nes_process_mac_intr()
2561 (nesadapter->phy_type[mac_index] != NES_PHY_TYPE_PUMA_1G)) { in nes_process_mac_intr()
2563 if (nesadapter->port_count > 2) { in nes_process_mac_intr()
2571 switch (nesadapter->phy_type[mac_index]) { in nes_process_mac_intr()
2576 nes_read_10G_phy_reg(nesdev, nesadapter->phy_index[mac_index], 4, 0x0008); in nes_process_mac_intr()
2577 nes_read_10G_phy_reg(nesdev, nesadapter->phy_index[mac_index], 4, 0xc001); in nes_process_mac_intr()
2578 nes_read_10G_phy_reg(nesdev, nesadapter->phy_index[mac_index], 4, 0xc002); in nes_process_mac_intr()
2579 nes_read_10G_phy_reg(nesdev, nesadapter->phy_index[mac_index], 4, 0xc005); in nes_process_mac_intr()
2580 nes_read_10G_phy_reg(nesdev, nesadapter->phy_index[mac_index], 4, 0xc006); in nes_process_mac_intr()
2581 nes_read_10G_phy_reg(nesdev, nesadapter->phy_index[mac_index], 1, 0x9003); in nes_process_mac_intr()
2582 nes_read_10G_phy_reg(nesdev, nesadapter->phy_index[mac_index], 1, 0x9004); in nes_process_mac_intr()
2583 nes_read_10G_phy_reg(nesdev, nesadapter->phy_index[mac_index], 1, 0x9005); in nes_process_mac_intr()
2585 nes_read_10G_phy_reg(nesdev, nesadapter->phy_index[mac_index], 1, 0x9003); in nes_process_mac_intr()
2588 nes_read_10G_phy_reg(nesdev, nesadapter->phy_index[mac_index], 3, 0x0021); in nes_process_mac_intr()
2590 nes_read_10G_phy_reg(nesdev, nesadapter->phy_index[mac_index], 3, 0x0021); in nes_process_mac_intr()
2596 __func__, phy_data, nesadapter->mac_link_down[mac_index] ? "DOWN" : "UP"); in nes_process_mac_intr()
2613 (nesadapter->phy_type[mac_index] == NES_PHY_TYPE_CX4) && in nes_process_mac_intr()
2614 (nesadapter->hw_rev != NE020_REV)) { in nes_process_mac_intr()
2623 nesadapter->mac_link_down[mac_index] = 0; in nes_process_mac_intr()
2624 list_for_each_entry(nesvnic, &nesadapter->nesvnic_list[mac_index], list) { in nes_process_mac_intr()
2647 (nesadapter->phy_type[mac_index] == NES_PHY_TYPE_CX4) && in nes_process_mac_intr()
2648 (nesadapter->hw_rev != NE020_REV)) { in nes_process_mac_intr()
2657 nesadapter->mac_link_down[mac_index] = 1; in nes_process_mac_intr()
2658 list_for_each_entry(nesvnic, &nesadapter->nesvnic_list[mac_index], list) { in nes_process_mac_intr()
2680 if (nesadapter->phy_type[mac_index] == NES_PHY_TYPE_SFP_D) { in nes_process_mac_intr()
2687 spin_unlock_irqrestore(&nesadapter->phy_lock, flags); in nes_process_mac_intr()
2689 nesadapter->mac_sw_state[mac_number] = NES_MAC_SW_IDLE; in nes_process_mac_intr()
2696 struct nes_adapter *nesadapter = nesdev->nesadapter; in nes_recheck_link_status() local
2702 spin_lock_irqsave(&nesadapter->phy_lock, flags); in nes_recheck_link_status()
2705 nes_read_10G_phy_reg(nesdev, nesadapter->phy_index[mac_index], 1, 0x9003); in nes_recheck_link_status()
2708 nes_read_10G_phy_reg(nesdev, nesadapter->phy_index[mac_index], 3, 0x0021); in nes_recheck_link_status()
2710 nes_read_10G_phy_reg(nesdev, nesadapter->phy_index[mac_index], 3, 0x0021); in nes_recheck_link_status()
2717 nesadapter->mac_link_down[mac_index] ? "DOWN" : "UP"); in nes_recheck_link_status()
2720 nesadapter->mac_link_down[mac_index] = 0; in nes_recheck_link_status()
2721 list_for_each_entry(nesvnic, &nesadapter->nesvnic_list[mac_index], list) { in nes_recheck_link_status()
2742 nesadapter->mac_link_down[mac_index] = 1; in nes_recheck_link_status()
2743 list_for_each_entry(nesvnic, &nesadapter->nesvnic_list[mac_index], list) { in nes_recheck_link_status()
2768 spin_unlock_irqrestore(&nesadapter->phy_lock, flags); in nes_recheck_link_status()
2794 struct nes_adapter *nesadapter = nesdev->nesadapter; in nes_nic_ce_handler() local
2999 if (unlikely(nesadapter->et_use_adaptive_rx_coalesce)) in nes_nic_ce_handler()
3378 struct nes_adapter *nesadapter = nesdev->nesadapter; in nes_terminate_connection() local
3388 context = (unsigned long)nesadapter->qp_table[le32_to_cpu( in nes_terminate_connection()
3403 if (nesadapter->send_term_ok) in nes_terminate_connection()
3547 struct nes_adapter *nesadapter = nesdev->nesadapter; in nes_process_iwarp_aeqe() local
3562 context = (unsigned long)nesadapter->qp_table[le32_to_cpu( in nes_process_iwarp_aeqe()
3580 if (!nes_is_resource_allocated(nesadapter, in nes_process_iwarp_aeqe()
3581 nesadapter->allocated_qps, in nes_process_iwarp_aeqe()
3726 resource_allocated = nes_is_resource_allocated(nesadapter, nesadapter->allocated_cqs, in nes_process_iwarp_aeqe()