2911 /* hardware has been reset, we need to reload some things */ |
2911 /* hardware has been reset, we need to reload some things */ |
2912 e1000_configure(adapter); |
2912 e1000_configure(adapter); |
2913 |
2913 |
2914 clear_bit(__E1000_DOWN, &adapter->state); |
2914 clear_bit(__E1000_DOWN, &adapter->state); |
2915 |
2915 |
2916 if (!adapter->ecdev) |
2916 if (!adapter->ecdev) |
2917 napi_enable(&adapter->napi); |
2917 napi_enable(&adapter->napi); |
2918 |
2918 |
2919 if (adapter->msix_entries) |
2919 if (adapter->msix_entries) |
2920 e1000_configure_msix(adapter); |
2920 e1000_configure_msix(adapter); |
2921 |
2921 |
2945 /* disable receives in the hardware */ |
2945 /* disable receives in the hardware */ |
2946 rctl = er32(RCTL); |
2946 rctl = er32(RCTL); |
2947 ew32(RCTL, rctl & ~E1000_RCTL_EN); |
2947 ew32(RCTL, rctl & ~E1000_RCTL_EN); |
2948 /* flush and sleep below */ |
2948 /* flush and sleep below */ |
2949 |
2949 |
2950 if (!adapter->ecdev) |
2950 if (!adapter->ecdev) |
2951 netif_stop_queue(netdev); |
2951 netif_stop_queue(netdev); |
2952 |
2952 |
2953 /* disable transmits in the hardware */ |
2953 /* disable transmits in the hardware */ |
2954 tctl = er32(TCTL); |
2954 tctl = er32(TCTL); |
2955 tctl &= ~E1000_TCTL_EN; |
2955 tctl &= ~E1000_TCTL_EN; |
3652 if ((e1000e_enable_tx_pkt_filtering(hw)) && |
3652 if ((e1000e_enable_tx_pkt_filtering(hw)) && |
3653 (adapter->mng_vlan_id != adapter->hw.mng_cookie.vlan_id)) |
3653 (adapter->mng_vlan_id != adapter->hw.mng_cookie.vlan_id)) |
3654 e1000_update_mng_vlan(adapter); |
3654 e1000_update_mng_vlan(adapter); |
3655 |
3655 |
3656 if (link) { |
3656 if (link) { |
3657 if ((adapter->ecdev && !ecdev_get_link(adapter->ecdev)) |
3657 if ((adapter->ecdev && !ecdev_get_link(adapter->ecdev)) |
3658 || (!adapter->ecdev && !netif_carrier_ok(netdev))) { |
3658 || (!adapter->ecdev && !netif_carrier_ok(netdev))) { |
3659 bool txb2b = 1; |
3659 bool txb2b = 1; |
3660 /* update snapshot of PHY registers on LSC */ |
3660 /* update snapshot of PHY registers on LSC */ |
3661 e1000_phy_read_status(adapter); |
3661 e1000_phy_read_status(adapter); |
3662 mac->ops.get_link_up_info(&adapter->hw, |
3662 mac->ops.get_link_up_info(&adapter->hw, |
3752 if (phy->ops.cfg_on_link_up) |
3752 if (phy->ops.cfg_on_link_up) |
3753 phy->ops.cfg_on_link_up(hw); |
3753 phy->ops.cfg_on_link_up(hw); |
3754 |
3754 |
3755 if (adapter->ecdev) |
3755 if (adapter->ecdev) |
3756 ecdev_set_link(adapter->ecdev, 1); |
3756 ecdev_set_link(adapter->ecdev, 1); |
3757 else |
3757 else |
3758 netif_carrier_on(netdev); |
3758 netif_carrier_on(netdev); |
3759 |
3759 |
3760 if (!adapter->ecdev && !test_bit(__E1000_DOWN, &adapter->state)) |
3760 if (!adapter->ecdev && !test_bit(__E1000_DOWN, &adapter->state)) |
3761 mod_timer(&adapter->phy_info_timer, |
3761 mod_timer(&adapter->phy_info_timer, |
3762 round_jiffies(jiffies + 2 * HZ)); |
3762 round_jiffies(jiffies + 2 * HZ)); |
3763 } |
3763 } |
3764 } else { |
3764 } else { |
3765 if ((adapter->ecdev && ecdev_get_link(adapter->ecdev)) |
3765 if ((adapter->ecdev && ecdev_get_link(adapter->ecdev)) |
3766 || (!adapter->ecdev && netif_carrier_ok(netdev))) { |
3766 || (!adapter->ecdev && netif_carrier_ok(netdev))) { |
3767 adapter->link_speed = 0; |
3767 adapter->link_speed = 0; |
3768 adapter->link_duplex = 0; |
3768 adapter->link_duplex = 0; |
3769 /* Link status message must follow this format */ |
3769 /* Link status message must follow this format */ |
3770 printk(KERN_INFO "e1000e: %s NIC Link is Down\n", |
3770 printk(KERN_INFO "e1000e: %s NIC Link is Down\n", |
3795 adapter->gotc = adapter->stats.gotc - adapter->gotc_old; |
3795 adapter->gotc = adapter->stats.gotc - adapter->gotc_old; |
3796 adapter->gotc_old = adapter->stats.gotc; |
3796 adapter->gotc_old = adapter->stats.gotc; |
3797 |
3797 |
3798 e1000e_update_adaptive(&adapter->hw); |
3798 e1000e_update_adaptive(&adapter->hw); |
3799 |
3799 |
3800 if ((adapter->ecdev && !ecdev_get_link(adapter->ecdev)) |
3800 if ((adapter->ecdev && !ecdev_get_link(adapter->ecdev)) |
3801 || (!adapter->ecdev && !netif_carrier_ok(netdev))) { |
3801 || (!adapter->ecdev && !netif_carrier_ok(netdev))) { |
3802 tx_pending = (e1000_desc_unused(tx_ring) + 1 < |
3802 tx_pending = (e1000_desc_unused(tx_ring) + 1 < |
3803 tx_ring->count); |
3803 tx_ring->count); |
3804 if (tx_pending) { |
3804 if (tx_pending) { |
3805 /* |
3805 /* |