Lines Matching refs:nesadapter
62 struct nes_adapter *nesadapter, u8 OneG_Mode);
118 struct nes_adapter *nesadapter = nesdev->nesadapter; in nes_nic_init_timer_defaults() local
119 struct nes_hw_tune_timer *shared_timer = &nesadapter->tune_timer; in nes_nic_init_timer_defaults()
121 spin_lock_irqsave(&nesadapter->periodic_timer_lock, flags); in nes_nic_init_timer_defaults()
136 spin_unlock_irqrestore(&nesadapter->periodic_timer_lock, flags); in nes_nic_init_timer_defaults()
146 struct nes_adapter *nesadapter = nesdev->nesadapter; in nes_nic_init_timer() local
147 struct nes_hw_tune_timer *shared_timer = &nesadapter->tune_timer; in nes_nic_init_timer()
149 spin_lock_irqsave(&nesadapter->periodic_timer_lock, flags); in nes_nic_init_timer()
165 spin_unlock_irqrestore(&nesadapter->periodic_timer_lock, flags); in nes_nic_init_timer()
175 struct nes_adapter *nesadapter = nesdev->nesadapter; in nes_nic_tune_timer() local
176 struct nes_hw_tune_timer *shared_timer = &nesadapter->tune_timer; in nes_nic_tune_timer()
179 spin_lock_irqsave(&nesadapter->periodic_timer_lock, flags); in nes_nic_tune_timer()
192 spin_unlock_irqrestore(&nesadapter->periodic_timer_lock, flags); in nes_nic_tune_timer()
238 spin_unlock_irqrestore(&nesadapter->periodic_timer_lock, flags); in nes_nic_tune_timer()
246 struct nes_adapter *nesadapter = NULL; in nes_init_adapter() local
267 list_for_each_entry(nesadapter, &nes_adapter_list, list) { in nes_init_adapter()
271 PCI_SLOT(nesadapter->devfn), in nes_init_adapter()
272 nesadapter->bus_number, in nes_init_adapter()
275 if ((PCI_SLOT(nesadapter->devfn) == PCI_SLOT(nesdev->pcidev->devfn)) && in nes_init_adapter()
276 (nesadapter->bus_number == nesdev->pcidev->bus->number)) { in nes_init_adapter()
277 nesadapter->ref_count++; in nes_init_adapter()
278 return nesadapter; in nes_init_adapter()
351 nesadapter = kzalloc(adapter_size, GFP_KERNEL); in nes_init_adapter()
352 if (!nesadapter) in nes_init_adapter()
356 nesadapter, (u32)sizeof(struct nes_adapter), adapter_size); in nes_init_adapter()
358 if (nes_read_eeprom_values(nesdev, nesadapter)) { in nes_init_adapter()
360 kfree(nesadapter); in nes_init_adapter()
364 nesadapter->vendor_id = (((u32) nesadapter->mac_addr_high) << 8) | in nes_init_adapter()
365 (nesadapter->mac_addr_low >> 24); in nes_init_adapter()
369 nesadapter->vendor_part_id = device_id; in nes_init_adapter()
371 if (nes_init_serdes(nesdev, hw_rev, port_count, nesadapter, in nes_init_adapter()
373 kfree(nesadapter); in nes_init_adapter()
378 memset(nesadapter->pft_mcast_map, 255, in nes_init_adapter()
379 sizeof nesadapter->pft_mcast_map); in nes_init_adapter()
382 nesadapter->nesdev = nesdev; in nes_init_adapter()
383 nesadapter->devfn = nesdev->pcidev->devfn; in nes_init_adapter()
384 nesadapter->bus_number = nesdev->pcidev->bus->number; in nes_init_adapter()
385 nesadapter->ref_count = 1; in nes_init_adapter()
386 nesadapter->timer_int_req = 0xffff0000; in nes_init_adapter()
387 nesadapter->OneG_Mode = OneG_Mode; in nes_init_adapter()
388 nesadapter->doorbell_start = nesdev->doorbell_region; in nes_init_adapter()
391 nesadapter->hw_rev = hw_rev; in nes_init_adapter()
392 nesadapter->port_count = port_count; in nes_init_adapter()
394 nesadapter->max_qp = max_qp; in nes_init_adapter()
395 nesadapter->hte_index_mask = hte_index_mask; in nes_init_adapter()
396 nesadapter->max_irrq = max_irrq; in nes_init_adapter()
397 nesadapter->max_mr = max_mr; in nes_init_adapter()
398 nesadapter->max_256pbl = max_256pbl - 1; in nes_init_adapter()
399 nesadapter->max_4kpbl = max_4kpbl - 1; in nes_init_adapter()
400 nesadapter->max_cq = max_cq; in nes_init_adapter()
401 nesadapter->free_256pbl = max_256pbl - 1; in nes_init_adapter()
402 nesadapter->free_4kpbl = max_4kpbl - 1; in nes_init_adapter()
403 nesadapter->max_pd = num_pds; in nes_init_adapter()
404 nesadapter->arp_table_size = arp_table_size; in nes_init_adapter()
406 nesadapter->et_pkt_rate_low = NES_TIMER_ENABLE_LIMIT; in nes_init_adapter()
408 nesadapter->et_use_adaptive_rx_coalesce = 0; in nes_init_adapter()
409 nesadapter->timer_int_limit = NES_TIMER_INT_LIMIT; in nes_init_adapter()
410 nesadapter->et_rx_coalesce_usecs_irq = interrupt_mod_interval; in nes_init_adapter()
412 nesadapter->et_use_adaptive_rx_coalesce = 1; in nes_init_adapter()
413 nesadapter->timer_int_limit = NES_TIMER_INT_LIMIT_DYNAMIC; in nes_init_adapter()
414 nesadapter->et_rx_coalesce_usecs_irq = 0; in nes_init_adapter()
418 if (nesadapter->et_rx_coalesce_usecs_irq) in nes_init_adapter()
420 ((u32)(nesadapter->et_rx_coalesce_usecs_irq * 8))); in nes_init_adapter()
424 nesadapter->base_pd = 1; in nes_init_adapter()
426 nesadapter->device_cap_flags = IB_DEVICE_LOCAL_DMA_LKEY | in nes_init_adapter()
430 nesadapter->allocated_qps = (unsigned long *)&(((unsigned char *)nesadapter) in nes_init_adapter()
432 nesadapter->allocated_cqs = &nesadapter->allocated_qps[BITS_TO_LONGS(max_qp)]; in nes_init_adapter()
433 nesadapter->allocated_mrs = &nesadapter->allocated_cqs[BITS_TO_LONGS(max_cq)]; in nes_init_adapter()
434 nesadapter->allocated_pds = &nesadapter->allocated_mrs[BITS_TO_LONGS(max_mr)]; in nes_init_adapter()
435 nesadapter->allocated_arps = &nesadapter->allocated_pds[BITS_TO_LONGS(num_pds)]; in nes_init_adapter()
436 …nesadapter->qp_table = (struct nes_qp **)(&nesadapter->allocated_arps[BITS_TO_LONGS(arp_table_size… in nes_init_adapter()
441 set_bit(u32temp, nesadapter->allocated_qps); in nes_init_adapter()
442 set_bit(u32temp, nesadapter->allocated_cqs); in nes_init_adapter()
444 set_bit(0, nesadapter->allocated_mrs); in nes_init_adapter()
447 set_bit(u32temp, nesadapter->allocated_pds); in nes_init_adapter()
481 nesadapter->max_qp_wr = min(max_rq_wrs, max_sq_wrs); in nes_init_adapter()
482 nesadapter->max_irrq_wr = (u32temp >> 16) & 3; in nes_init_adapter()
484 nesadapter->max_sge = 4; in nes_init_adapter()
485 nesadapter->max_cqe = 32766; in nes_init_adapter()
487 if (nes_read_eeprom_values(nesdev, nesadapter)) { in nes_init_adapter()
489 kfree(nesadapter); in nes_init_adapter()
495 (u32temp & 0xff000000) | (nesadapter->tcp_timer_core_clk_divisor & 0x00ffffff)); in nes_init_adapter()
498 if (nesadapter->port_count == 1) { in nes_init_adapter()
499 nesadapter->log_port = 0x00000000; in nes_init_adapter()
505 if (nesadapter->phy_type[0] == NES_PHY_TYPE_PUMA_1G) { in nes_init_adapter()
506 nesadapter->log_port = 0x000000D8; in nes_init_adapter()
508 if (nesadapter->port_count == 2) in nes_init_adapter()
509 nesadapter->log_port = 0x00000044; in nes_init_adapter()
511 nesadapter->log_port = 0x000000e4; in nes_init_adapter()
517 nesadapter->log_port); in nes_init_adapter()
521 spin_lock_init(&nesadapter->resource_lock); in nes_init_adapter()
522 spin_lock_init(&nesadapter->phy_lock); in nes_init_adapter()
523 spin_lock_init(&nesadapter->pbl_lock); in nes_init_adapter()
524 spin_lock_init(&nesadapter->periodic_timer_lock); in nes_init_adapter()
526 INIT_LIST_HEAD(&nesadapter->nesvnic_list[0]); in nes_init_adapter()
527 INIT_LIST_HEAD(&nesadapter->nesvnic_list[1]); in nes_init_adapter()
528 INIT_LIST_HEAD(&nesadapter->nesvnic_list[2]); in nes_init_adapter()
529 INIT_LIST_HEAD(&nesadapter->nesvnic_list[3]); in nes_init_adapter()
531 if ((!nesadapter->OneG_Mode) && (nesadapter->port_count == 2)) { in nes_init_adapter()
556 spin_lock_irqsave(&nesadapter->phy_lock, flags); in nes_init_adapter()
565 spin_unlock_irqrestore(&nesadapter->phy_lock, flags); in nes_init_adapter()
580 spin_lock_irqsave(&nesadapter->phy_lock, flags); in nes_init_adapter()
590 spin_unlock_irqrestore(&nesadapter->phy_lock, flags); in nes_init_adapter()
599 if (nesadapter->hw_rev == NE020_REV) { in nes_init_adapter()
600 timer_setup(&nesadapter->mh_timer, nes_mh_fix, 0); in nes_init_adapter()
601 nesadapter->mh_timer.expires = jiffies + (HZ/5); /* 1 second */ in nes_init_adapter()
602 add_timer(&nesadapter->mh_timer); in nes_init_adapter()
607 timer_setup(&nesadapter->lc_timer, nes_clc, 0); in nes_init_adapter()
608 nesadapter->lc_timer.expires = jiffies + 3600 * HZ; /* 1 hour */ in nes_init_adapter()
609 add_timer(&nesadapter->lc_timer); in nes_init_adapter()
611 list_add_tail(&nesadapter->list, &nes_adapter_list); in nes_init_adapter()
622 nesadapter->adapter_fcn_count = func_index; in nes_init_adapter()
624 return nesadapter; in nes_init_adapter()
738 struct nes_adapter *nesadapter, u8 OneG_Mode) in nes_init_serdes() argument
746 switch (nesadapter->phy_type[0]) { in nes_init_serdes()
775 if (!(OneG_Mode && (nesadapter->phy_type[1] != NES_PHY_TYPE_PUMA_1G))) in nes_init_serdes()
778 switch (nesadapter->phy_type[1]) { in nes_init_serdes()
942 void nes_destroy_adapter(struct nes_adapter *nesadapter) in nes_destroy_adapter() argument
951 nesadapter->ref_count--; in nes_destroy_adapter()
952 if (!nesadapter->ref_count) { in nes_destroy_adapter()
953 if (nesadapter->hw_rev == NE020_REV) { in nes_destroy_adapter()
954 del_timer(&nesadapter->mh_timer); in nes_destroy_adapter()
956 del_timer(&nesadapter->lc_timer); in nes_destroy_adapter()
958 list_del(&nesadapter->list); in nes_destroy_adapter()
959 kfree(nesadapter); in nes_destroy_adapter()
969 struct nes_adapter *nesadapter = nesdev->nesadapter; in nes_init_cqp() local
990 (sizeof(struct nes_hw_aeqe) * nesadapter->max_qp) + in nes_init_cqp()
1043 ceq = &nesadapter->ceq[nesdev->ceq_index]; in nes_init_cqp()
1053 nic_ceq = &nesadapter->ceq[nesdev->nic_ceq_index]; in nes_init_cqp()
1062 aeq = &nesadapter->aeq[PCI_FUNC(nesdev->pcidev->devfn)]; in nes_init_cqp()
1065 aeq->aeq_size = nesadapter->max_qp; in nes_init_cqp()
1501 struct nes_adapter *nesadapter = nesdev->nesadapter; in nes_init_phy() local
1505 u8 phy_type = nesadapter->phy_type[mac_index]; in nes_init_phy()
1506 u8 phy_index = nesadapter->phy_index[mac_index]; in nes_init_phy()
1521 spin_lock_irqsave(&nesdev->nesadapter->phy_lock, flags); in nes_init_phy()
1534 spin_unlock_irqrestore(&nesdev->nesadapter->phy_lock, flags); in nes_init_phy()
1726 if (nesdev->nesadapter->netdev_count > 2) in nes_init_nic_qp()
1849 if (nesdev->nesadapter->et_use_adaptive_rx_coalesce) in nes_init_nic_qp()
1856 if ((nesdev->nesadapter->allow_unaligned_fpdus) && in nes_init_nic_qp()
1887 if (nesdev->nesadapter->allow_unaligned_fpdus) in nes_destroy_nic_qp()
2020 struct nes_adapter *nesadapter = nesdev->nesadapter; in nes_napi_isr() local
2041 nes_process_ceq(nesdev, &nesdev->nesadapter->ceq[nesdev->nic_ceq_index]); in nes_napi_isr()
2043 if (unlikely((((nesadapter->et_rx_coalesce_usecs_irq) && in nes_napi_isr()
2044 (!nesadapter->et_use_adaptive_rx_coalesce)) || in nes_napi_isr()
2045 ((nesadapter->et_use_adaptive_rx_coalesce) && in nes_napi_isr()
2046 (nesdev->deepcq_count > nesadapter->et_pkt_rate_low))))) { in nes_napi_isr()
2053 nesdev->timer_int_req | ~(nesdev->nesadapter->timer_int_req)); in nes_napi_isr()
2058 if (unlikely(nesadapter->et_use_adaptive_rx_coalesce)) in nes_napi_isr()
2091 if (++nesdev->nesadapter->crit_error_count[error_module-1] >= in process_critical_error()
2107 struct nes_adapter *nesadapter = nesdev->nesadapter; in nes_dpc() local
2157 nes_process_ceq(nesdev, &nesadapter->ceq[counter]); in nes_dpc()
2169 nes_process_aeq(nesdev, &nesadapter->aeq[PCI_FUNC(nesdev->pcidev->devfn)]); in nes_dpc()
2182 ~(nesdev->nesadapter->timer_int_req)); in nes_dpc()
2214 if ((nesadapter->et_rx_coalesce_usecs_irq) || (nesadapter->et_use_adaptive_rx_coalesce)) { in nes_dpc()
2217 if (nesdev->timer_only_int_count>=nesadapter->timer_int_limit) { in nes_dpc()
2226 if (unlikely(nesadapter->et_use_adaptive_rx_coalesce)) in nes_dpc()
2238 nesdev->timer_int_req | ~(nesdev->nesadapter->timer_int_req)); in nes_dpc()
2243 (((nesadapter->et_rx_coalesce_usecs_irq) && in nes_dpc()
2244 (!nesadapter->et_use_adaptive_rx_coalesce)) || in nes_dpc()
2245 ((nesdev->deepcq_count > nesadapter->et_pkt_rate_low) && in nes_dpc()
2246 (nesadapter->et_use_adaptive_rx_coalesce) )) ) { in nes_dpc()
2251 nesdev->timer_int_req | ~(nesdev->nesadapter->timer_int_req)); in nes_dpc()
2352 struct nes_adapter *nesadapter = nesdev->nesadapter; in nes_reset_link() local
2357 if (nesadapter->hw_rev == NE020_REV) { in nes_reset_link()
2364 if ((mac_index == 0) || ((mac_index == 1) && (nesadapter->OneG_Mode))) in nes_reset_link()
2369 if (4 <= (nesadapter->link_interrupt_count[mac_index] / ((u16)NES_MAX_LINK_INTERRUPTS))) { in nes_reset_link()
2370 if ((!nesadapter->OneG_Mode) && (nesadapter->port_count == 2)) { in nes_reset_link()
2371 nesadapter->link_interrupt_count[0] = 0; in nes_reset_link()
2372 nesadapter->link_interrupt_count[1] = 0; in nes_reset_link()
2381 nesadapter->link_interrupt_count[mac_index] = 0; in nes_reset_link()
2425 struct nes_adapter *nesadapter = nesdev->nesadapter; in nes_process_mac_intr() local
2436 spin_lock_irqsave(&nesadapter->phy_lock, flags); in nes_process_mac_intr()
2437 if (nesadapter->mac_sw_state[mac_number] != NES_MAC_SW_IDLE) { in nes_process_mac_intr()
2438 spin_unlock_irqrestore(&nesadapter->phy_lock, flags); in nes_process_mac_intr()
2441 nesadapter->mac_sw_state[mac_number] = NES_MAC_SW_INTERRUPT; in nes_process_mac_intr()
2452 if (0 == (++nesadapter->link_interrupt_count[mac_index] % ((u16)NES_MAX_LINK_INTERRUPTS))) in nes_process_mac_intr()
2456 if ((nesadapter->OneG_Mode) && in nes_process_mac_intr()
2457 (nesadapter->phy_type[mac_index] != NES_PHY_TYPE_PUMA_1G)) { in nes_process_mac_intr()
2460 nesadapter->phy_index[mac_index], &phy_data); in nes_process_mac_intr()
2462 nesadapter->phy_index[mac_index], phy_data); in nes_process_mac_intr()
2468 nesadapter->phy_index[mac_index], &phy_data); in nes_process_mac_intr()
2470 nesadapter->phy_index[mac_index], phy_data); in nes_process_mac_intr()
2477 nesadapter->phy_index[mac_index], &phy_data); in nes_process_mac_intr()
2479 nesadapter->phy_index[mac_index], phy_data); in nes_process_mac_intr()
2482 nesadapter->phy_index[mac_index], &phy_data); in nes_process_mac_intr()
2484 nesadapter->phy_index[mac_index], phy_data); in nes_process_mac_intr()
2497 if (nesadapter->phy_type[mac_index] == NES_PHY_TYPE_PUMA_1G) { in nes_process_mac_intr()
2518 if ((nesadapter->OneG_Mode) && in nes_process_mac_intr()
2519 (nesadapter->phy_type[mac_index] != NES_PHY_TYPE_PUMA_1G)) { in nes_process_mac_intr()
2521 if (nesadapter->port_count > 2) { in nes_process_mac_intr()
2529 switch (nesadapter->phy_type[mac_index]) { in nes_process_mac_intr()
2534 nes_read_10G_phy_reg(nesdev, nesadapter->phy_index[mac_index], 4, 0x0008); in nes_process_mac_intr()
2535 nes_read_10G_phy_reg(nesdev, nesadapter->phy_index[mac_index], 4, 0xc001); in nes_process_mac_intr()
2536 nes_read_10G_phy_reg(nesdev, nesadapter->phy_index[mac_index], 4, 0xc002); in nes_process_mac_intr()
2537 nes_read_10G_phy_reg(nesdev, nesadapter->phy_index[mac_index], 4, 0xc005); in nes_process_mac_intr()
2538 nes_read_10G_phy_reg(nesdev, nesadapter->phy_index[mac_index], 4, 0xc006); in nes_process_mac_intr()
2539 nes_read_10G_phy_reg(nesdev, nesadapter->phy_index[mac_index], 1, 0x9003); in nes_process_mac_intr()
2540 nes_read_10G_phy_reg(nesdev, nesadapter->phy_index[mac_index], 1, 0x9004); in nes_process_mac_intr()
2541 nes_read_10G_phy_reg(nesdev, nesadapter->phy_index[mac_index], 1, 0x9005); in nes_process_mac_intr()
2543 nes_read_10G_phy_reg(nesdev, nesadapter->phy_index[mac_index], 1, 0x9003); in nes_process_mac_intr()
2546 nes_read_10G_phy_reg(nesdev, nesadapter->phy_index[mac_index], 3, 0x0021); in nes_process_mac_intr()
2548 nes_read_10G_phy_reg(nesdev, nesadapter->phy_index[mac_index], 3, 0x0021); in nes_process_mac_intr()
2554 __func__, phy_data, nesadapter->mac_link_down[mac_index] ? "DOWN" : "UP"); in nes_process_mac_intr()
2571 (nesadapter->phy_type[mac_index] == NES_PHY_TYPE_CX4) && in nes_process_mac_intr()
2572 (nesadapter->hw_rev != NE020_REV)) { in nes_process_mac_intr()
2581 nesadapter->mac_link_down[mac_index] = 0; in nes_process_mac_intr()
2582 list_for_each_entry(nesvnic, &nesadapter->nesvnic_list[mac_index], list) { in nes_process_mac_intr()
2605 (nesadapter->phy_type[mac_index] == NES_PHY_TYPE_CX4) && in nes_process_mac_intr()
2606 (nesadapter->hw_rev != NE020_REV)) { in nes_process_mac_intr()
2615 nesadapter->mac_link_down[mac_index] = 1; in nes_process_mac_intr()
2616 list_for_each_entry(nesvnic, &nesadapter->nesvnic_list[mac_index], list) { in nes_process_mac_intr()
2638 if (nesadapter->phy_type[mac_index] == NES_PHY_TYPE_SFP_D) { in nes_process_mac_intr()
2645 spin_unlock_irqrestore(&nesadapter->phy_lock, flags); in nes_process_mac_intr()
2647 nesadapter->mac_sw_state[mac_number] = NES_MAC_SW_IDLE; in nes_process_mac_intr()
2654 struct nes_adapter *nesadapter = nesdev->nesadapter; in nes_recheck_link_status() local
2660 spin_lock_irqsave(&nesadapter->phy_lock, flags); in nes_recheck_link_status()
2663 nes_read_10G_phy_reg(nesdev, nesadapter->phy_index[mac_index], 1, 0x9003); in nes_recheck_link_status()
2666 nes_read_10G_phy_reg(nesdev, nesadapter->phy_index[mac_index], 3, 0x0021); in nes_recheck_link_status()
2668 nes_read_10G_phy_reg(nesdev, nesadapter->phy_index[mac_index], 3, 0x0021); in nes_recheck_link_status()
2675 nesadapter->mac_link_down[mac_index] ? "DOWN" : "UP"); in nes_recheck_link_status()
2678 nesadapter->mac_link_down[mac_index] = 0; in nes_recheck_link_status()
2679 list_for_each_entry(nesvnic, &nesadapter->nesvnic_list[mac_index], list) { in nes_recheck_link_status()
2700 nesadapter->mac_link_down[mac_index] = 1; in nes_recheck_link_status()
2701 list_for_each_entry(nesvnic, &nesadapter->nesvnic_list[mac_index], list) { in nes_recheck_link_status()
2726 spin_unlock_irqrestore(&nesadapter->phy_lock, flags); in nes_recheck_link_status()
2752 struct nes_adapter *nesadapter = nesdev->nesadapter; in nes_nic_ce_handler() local
2949 if (unlikely(nesadapter->et_use_adaptive_rx_coalesce)) in nes_nic_ce_handler()
3328 struct nes_adapter *nesadapter = nesdev->nesadapter; in nes_terminate_connection() local
3338 context = (unsigned long)nesadapter->qp_table[le32_to_cpu( in nes_terminate_connection()
3353 if (nesadapter->send_term_ok) in nes_terminate_connection()
3497 struct nes_adapter *nesadapter = nesdev->nesadapter; in nes_process_iwarp_aeqe() local
3512 context = (unsigned long)nesadapter->qp_table[le32_to_cpu( in nes_process_iwarp_aeqe()
3530 if (!nes_is_resource_allocated(nesadapter, in nes_process_iwarp_aeqe()
3531 nesadapter->allocated_qps, in nes_process_iwarp_aeqe()
3676 resource_allocated = nes_is_resource_allocated(nesadapter, nesadapter->allocated_cqs, in nes_process_iwarp_aeqe()