diff options
author | Jeff Kirsher <jeffrey.t.kirsher@intel.com> | 2008-03-28 12:15:16 -0400 |
---|---|---|
committer | Jeff Garzik <jeff@garzik.org> | 2008-03-28 22:15:00 -0400 |
commit | 318a94d68979cbe9cc98a3050b4b7be2f08513c8 (patch) | |
tree | 32fdd0bd9f4a0c9dcc2a958b18820286a9acdcec /drivers/net/e1000e/netdev.c | |
parent | e2de3eb69c40c01739ce9b154c65e51d94d72966 (diff) |
e1000e: reorganize PHY and flow control interface
This reorganization moves the PHY status into a separate
struct. Flow Control setup is moved into this struct as well
and frame size away from here into the adapter struct where its
inly use is.
The post-link-up code is now a separate function and moved out
of the watchdog function itself. This allows us to track the
es2lan restart issue a bit easier.
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: Bruce Allan <bruce.w.allan@intel.com>
Signed-off-by: Jesse Brandeburg <jesse.brandeburg@intel.com>
Signed-off-by: Auke Kok <auke-jan.h.kok@intel.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
Diffstat (limited to 'drivers/net/e1000e/netdev.c')
-rw-r--r-- | drivers/net/e1000e/netdev.c | 151 |
1 files changed, 96 insertions, 55 deletions
diff --git a/drivers/net/e1000e/netdev.c b/drivers/net/e1000e/netdev.c index 2e07534c35f7..d70bde03619e 100644 --- a/drivers/net/e1000e/netdev.c +++ b/drivers/net/e1000e/netdev.c | |||
@@ -878,6 +878,7 @@ static irqreturn_t e1000_intr_msi(int irq, void *data) | |||
878 | /* disable receives */ | 878 | /* disable receives */ |
879 | u32 rctl = er32(RCTL); | 879 | u32 rctl = er32(RCTL); |
880 | ew32(RCTL, rctl & ~E1000_RCTL_EN); | 880 | ew32(RCTL, rctl & ~E1000_RCTL_EN); |
881 | adapter->flags |= FLAG_RX_RESTART_NOW; | ||
881 | } | 882 | } |
882 | /* guard against interrupt when we're going down */ | 883 | /* guard against interrupt when we're going down */ |
883 | if (!test_bit(__E1000_DOWN, &adapter->state)) | 884 | if (!test_bit(__E1000_DOWN, &adapter->state)) |
@@ -944,6 +945,7 @@ static irqreturn_t e1000_intr(int irq, void *data) | |||
944 | /* disable receives */ | 945 | /* disable receives */ |
945 | rctl = er32(RCTL); | 946 | rctl = er32(RCTL); |
946 | ew32(RCTL, rctl & ~E1000_RCTL_EN); | 947 | ew32(RCTL, rctl & ~E1000_RCTL_EN); |
948 | adapter->flags |= FLAG_RX_RESTART_NOW; | ||
947 | } | 949 | } |
948 | /* guard against interrupt when we're going down */ | 950 | /* guard against interrupt when we're going down */ |
949 | if (!test_bit(__E1000_DOWN, &adapter->state)) | 951 | if (!test_bit(__E1000_DOWN, &adapter->state)) |
@@ -1794,6 +1796,8 @@ static void e1000_setup_rctl(struct e1000_adapter *adapter) | |||
1794 | } | 1796 | } |
1795 | 1797 | ||
1796 | ew32(RCTL, rctl); | 1798 | ew32(RCTL, rctl); |
1799 | /* just started the receive unit, no need to restart */ | ||
1800 | adapter->flags &= ~FLAG_RX_RESTART_NOW; | ||
1797 | } | 1801 | } |
1798 | 1802 | ||
1799 | /** | 1803 | /** |
@@ -2003,7 +2007,7 @@ void e1000e_power_up_phy(struct e1000_adapter *adapter) | |||
2003 | u16 mii_reg = 0; | 2007 | u16 mii_reg = 0; |
2004 | 2008 | ||
2005 | /* Just clear the power down bit to wake the phy back up */ | 2009 | /* Just clear the power down bit to wake the phy back up */ |
2006 | if (adapter->hw.media_type == e1000_media_type_copper) { | 2010 | if (adapter->hw.phy.media_type == e1000_media_type_copper) { |
2007 | /* | 2011 | /* |
2008 | * According to the manual, the phy will retain its | 2012 | * According to the manual, the phy will retain its |
2009 | * settings across a power-down/up cycle | 2013 | * settings across a power-down/up cycle |
@@ -2032,7 +2036,7 @@ static void e1000_power_down_phy(struct e1000_adapter *adapter) | |||
2032 | return; | 2036 | return; |
2033 | 2037 | ||
2034 | /* non-copper PHY? */ | 2038 | /* non-copper PHY? */ |
2035 | if (adapter->hw.media_type != e1000_media_type_copper) | 2039 | if (adapter->hw.phy.media_type != e1000_media_type_copper) |
2036 | return; | 2040 | return; |
2037 | 2041 | ||
2038 | /* reset is blocked because of a SoL/IDER session */ | 2042 | /* reset is blocked because of a SoL/IDER session */ |
@@ -2061,15 +2065,16 @@ static void e1000_power_down_phy(struct e1000_adapter *adapter) | |||
2061 | void e1000e_reset(struct e1000_adapter *adapter) | 2065 | void e1000e_reset(struct e1000_adapter *adapter) |
2062 | { | 2066 | { |
2063 | struct e1000_mac_info *mac = &adapter->hw.mac; | 2067 | struct e1000_mac_info *mac = &adapter->hw.mac; |
2068 | struct e1000_fc_info *fc = &adapter->hw.fc; | ||
2064 | struct e1000_hw *hw = &adapter->hw; | 2069 | struct e1000_hw *hw = &adapter->hw; |
2065 | u32 tx_space, min_tx_space, min_rx_space; | 2070 | u32 tx_space, min_tx_space, min_rx_space; |
2066 | u32 pba; | 2071 | u32 pba = adapter->pba; |
2067 | u16 hwm; | 2072 | u16 hwm; |
2068 | 2073 | ||
2069 | /* reset Packet Buffer Allocation to default */ | 2074 | /* reset Packet Buffer Allocation to default */ |
2070 | ew32(PBA, adapter->pba); | 2075 | ew32(PBA, pba); |
2071 | 2076 | ||
2072 | if (mac->max_frame_size > ETH_FRAME_LEN + ETH_FCS_LEN ) { | 2077 | if (adapter->max_frame_size > ETH_FRAME_LEN + ETH_FCS_LEN) { |
2073 | /* | 2078 | /* |
2074 | * To maintain wire speed transmits, the Tx FIFO should be | 2079 | * To maintain wire speed transmits, the Tx FIFO should be |
2075 | * large enough to accommodate two full transmit packets, | 2080 | * large enough to accommodate two full transmit packets, |
@@ -2086,13 +2091,14 @@ void e1000e_reset(struct e1000_adapter *adapter) | |||
2086 | /* | 2091 | /* |
2087 | * the Tx fifo also stores 16 bytes of information about the tx | 2092 | * the Tx fifo also stores 16 bytes of information about the tx |
2088 | * but don't include ethernet FCS because hardware appends it | 2093 | * but don't include ethernet FCS because hardware appends it |
2089 | */ min_tx_space = (mac->max_frame_size + | 2094 | */ |
2095 | min_tx_space = (adapter->max_frame_size + | ||
2090 | sizeof(struct e1000_tx_desc) - | 2096 | sizeof(struct e1000_tx_desc) - |
2091 | ETH_FCS_LEN) * 2; | 2097 | ETH_FCS_LEN) * 2; |
2092 | min_tx_space = ALIGN(min_tx_space, 1024); | 2098 | min_tx_space = ALIGN(min_tx_space, 1024); |
2093 | min_tx_space >>= 10; | 2099 | min_tx_space >>= 10; |
2094 | /* software strips receive CRC, so leave room for it */ | 2100 | /* software strips receive CRC, so leave room for it */ |
2095 | min_rx_space = mac->max_frame_size; | 2101 | min_rx_space = adapter->max_frame_size; |
2096 | min_rx_space = ALIGN(min_rx_space, 1024); | 2102 | min_rx_space = ALIGN(min_rx_space, 1024); |
2097 | min_rx_space >>= 10; | 2103 | min_rx_space >>= 10; |
2098 | 2104 | ||
@@ -2131,20 +2137,21 @@ void e1000e_reset(struct e1000_adapter *adapter) | |||
2131 | * - the full Rx FIFO size minus one full frame | 2137 | * - the full Rx FIFO size minus one full frame |
2132 | */ | 2138 | */ |
2133 | if (adapter->flags & FLAG_HAS_ERT) | 2139 | if (adapter->flags & FLAG_HAS_ERT) |
2134 | hwm = min(((adapter->pba << 10) * 9 / 10), | 2140 | hwm = min(((pba << 10) * 9 / 10), |
2135 | ((adapter->pba << 10) - (E1000_ERT_2048 << 3))); | 2141 | ((pba << 10) - (E1000_ERT_2048 << 3))); |
2136 | else | 2142 | else |
2137 | hwm = min(((adapter->pba << 10) * 9 / 10), | 2143 | hwm = min(((pba << 10) * 9 / 10), |
2138 | ((adapter->pba << 10) - mac->max_frame_size)); | 2144 | ((pba << 10) - adapter->max_frame_size)); |
2139 | 2145 | ||
2140 | mac->fc_high_water = hwm & 0xFFF8; /* 8-byte granularity */ | 2146 | fc->high_water = hwm & 0xFFF8; /* 8-byte granularity */ |
2141 | mac->fc_low_water = mac->fc_high_water - 8; | 2147 | fc->low_water = fc->high_water - 8; |
2142 | 2148 | ||
2143 | if (adapter->flags & FLAG_DISABLE_FC_PAUSE_TIME) | 2149 | if (adapter->flags & FLAG_DISABLE_FC_PAUSE_TIME) |
2144 | mac->fc_pause_time = 0xFFFF; | 2150 | fc->pause_time = 0xFFFF; |
2145 | else | 2151 | else |
2146 | mac->fc_pause_time = E1000_FC_PAUSE_TIME; | 2152 | fc->pause_time = E1000_FC_PAUSE_TIME; |
2147 | mac->fc = mac->original_fc; | 2153 | fc->send_xon = 1; |
2154 | fc->type = fc->original_type; | ||
2148 | 2155 | ||
2149 | /* Allow time for pending master requests to run */ | 2156 | /* Allow time for pending master requests to run */ |
2150 | mac->ops.reset_hw(hw); | 2157 | mac->ops.reset_hw(hw); |
@@ -2259,13 +2266,12 @@ void e1000e_reinit_locked(struct e1000_adapter *adapter) | |||
2259 | **/ | 2266 | **/ |
2260 | static int __devinit e1000_sw_init(struct e1000_adapter *adapter) | 2267 | static int __devinit e1000_sw_init(struct e1000_adapter *adapter) |
2261 | { | 2268 | { |
2262 | struct e1000_hw *hw = &adapter->hw; | ||
2263 | struct net_device *netdev = adapter->netdev; | 2269 | struct net_device *netdev = adapter->netdev; |
2264 | 2270 | ||
2265 | adapter->rx_buffer_len = ETH_FRAME_LEN + VLAN_HLEN + ETH_FCS_LEN; | 2271 | adapter->rx_buffer_len = ETH_FRAME_LEN + VLAN_HLEN + ETH_FCS_LEN; |
2266 | adapter->rx_ps_bsize0 = 128; | 2272 | adapter->rx_ps_bsize0 = 128; |
2267 | hw->mac.max_frame_size = netdev->mtu + ETH_HLEN + ETH_FCS_LEN; | 2273 | adapter->max_frame_size = netdev->mtu + ETH_HLEN + ETH_FCS_LEN; |
2268 | hw->mac.min_frame_size = ETH_ZLEN + ETH_FCS_LEN; | 2274 | adapter->min_frame_size = ETH_ZLEN + ETH_FCS_LEN; |
2269 | 2275 | ||
2270 | adapter->tx_ring = kzalloc(sizeof(struct e1000_ring), GFP_KERNEL); | 2276 | adapter->tx_ring = kzalloc(sizeof(struct e1000_ring), GFP_KERNEL); |
2271 | if (!adapter->tx_ring) | 2277 | if (!adapter->tx_ring) |
@@ -2611,7 +2617,7 @@ void e1000e_update_stats(struct e1000_adapter *adapter) | |||
2611 | /* Tx Dropped needs to be maintained elsewhere */ | 2617 | /* Tx Dropped needs to be maintained elsewhere */ |
2612 | 2618 | ||
2613 | /* Phy Stats */ | 2619 | /* Phy Stats */ |
2614 | if (hw->media_type == e1000_media_type_copper) { | 2620 | if (hw->phy.media_type == e1000_media_type_copper) { |
2615 | if ((adapter->link_speed == SPEED_1000) && | 2621 | if ((adapter->link_speed == SPEED_1000) && |
2616 | (!e1e_rphy(hw, PHY_1000T_STATUS, &phy_tmp))) { | 2622 | (!e1e_rphy(hw, PHY_1000T_STATUS, &phy_tmp))) { |
2617 | phy_tmp &= PHY_IDLE_ERROR_COUNT_MASK; | 2623 | phy_tmp &= PHY_IDLE_ERROR_COUNT_MASK; |
@@ -2629,8 +2635,8 @@ void e1000e_update_stats(struct e1000_adapter *adapter) | |||
2629 | 2635 | ||
2630 | static void e1000_print_link_info(struct e1000_adapter *adapter) | 2636 | static void e1000_print_link_info(struct e1000_adapter *adapter) |
2631 | { | 2637 | { |
2632 | struct net_device *netdev = adapter->netdev; | ||
2633 | struct e1000_hw *hw = &adapter->hw; | 2638 | struct e1000_hw *hw = &adapter->hw; |
2639 | struct net_device *netdev = adapter->netdev; | ||
2634 | u32 ctrl = er32(CTRL); | 2640 | u32 ctrl = er32(CTRL); |
2635 | 2641 | ||
2636 | ndev_info(netdev, | 2642 | ndev_info(netdev, |
@@ -2644,6 +2650,62 @@ static void e1000_print_link_info(struct e1000_adapter *adapter) | |||
2644 | ((ctrl & E1000_CTRL_TFCE) ? "TX" : "None" ))); | 2650 | ((ctrl & E1000_CTRL_TFCE) ? "TX" : "None" ))); |
2645 | } | 2651 | } |
2646 | 2652 | ||
2653 | static bool e1000_has_link(struct e1000_adapter *adapter) | ||
2654 | { | ||
2655 | struct e1000_hw *hw = &adapter->hw; | ||
2656 | bool link_active = 0; | ||
2657 | s32 ret_val = 0; | ||
2658 | |||
2659 | /* | ||
2660 | * get_link_status is set on LSC (link status) interrupt or | ||
2661 | * Rx sequence error interrupt. get_link_status will stay | ||
2662 | * false until the check_for_link establishes link | ||
2663 | * for copper adapters ONLY | ||
2664 | */ | ||
2665 | switch (hw->phy.media_type) { | ||
2666 | case e1000_media_type_copper: | ||
2667 | if (hw->mac.get_link_status) { | ||
2668 | ret_val = hw->mac.ops.check_for_link(hw); | ||
2669 | link_active = !hw->mac.get_link_status; | ||
2670 | } else { | ||
2671 | link_active = 1; | ||
2672 | } | ||
2673 | break; | ||
2674 | case e1000_media_type_fiber: | ||
2675 | ret_val = hw->mac.ops.check_for_link(hw); | ||
2676 | link_active = !!(er32(STATUS) & E1000_STATUS_LU); | ||
2677 | break; | ||
2678 | case e1000_media_type_internal_serdes: | ||
2679 | ret_val = hw->mac.ops.check_for_link(hw); | ||
2680 | link_active = adapter->hw.mac.serdes_has_link; | ||
2681 | break; | ||
2682 | default: | ||
2683 | case e1000_media_type_unknown: | ||
2684 | break; | ||
2685 | } | ||
2686 | |||
2687 | if ((ret_val == E1000_ERR_PHY) && (hw->phy.type == e1000_phy_igp_3) && | ||
2688 | (er32(CTRL) & E1000_PHY_CTRL_GBE_DISABLE)) { | ||
2689 | /* See e1000_kmrn_lock_loss_workaround_ich8lan() */ | ||
2690 | ndev_info(adapter->netdev, | ||
2691 | "Gigabit has been disabled, downgrading speed\n"); | ||
2692 | } | ||
2693 | |||
2694 | return link_active; | ||
2695 | } | ||
2696 | |||
2697 | static void e1000e_enable_receives(struct e1000_adapter *adapter) | ||
2698 | { | ||
2699 | /* make sure the receive unit is started */ | ||
2700 | if ((adapter->flags & FLAG_RX_NEEDS_RESTART) && | ||
2701 | (adapter->flags & FLAG_RX_RESTART_NOW)) { | ||
2702 | struct e1000_hw *hw = &adapter->hw; | ||
2703 | u32 rctl = er32(RCTL); | ||
2704 | ew32(RCTL, rctl | E1000_RCTL_EN); | ||
2705 | adapter->flags &= ~FLAG_RX_RESTART_NOW; | ||
2706 | } | ||
2707 | } | ||
2708 | |||
2647 | /** | 2709 | /** |
2648 | * e1000_watchdog - Timer Call-back | 2710 | * e1000_watchdog - Timer Call-back |
2649 | * @data: pointer to adapter cast into an unsigned long | 2711 | * @data: pointer to adapter cast into an unsigned long |
@@ -2662,42 +2724,27 @@ static void e1000_watchdog_task(struct work_struct *work) | |||
2662 | { | 2724 | { |
2663 | struct e1000_adapter *adapter = container_of(work, | 2725 | struct e1000_adapter *adapter = container_of(work, |
2664 | struct e1000_adapter, watchdog_task); | 2726 | struct e1000_adapter, watchdog_task); |
2665 | |||
2666 | struct net_device *netdev = adapter->netdev; | 2727 | struct net_device *netdev = adapter->netdev; |
2667 | struct e1000_mac_info *mac = &adapter->hw.mac; | 2728 | struct e1000_mac_info *mac = &adapter->hw.mac; |
2668 | struct e1000_ring *tx_ring = adapter->tx_ring; | 2729 | struct e1000_ring *tx_ring = adapter->tx_ring; |
2669 | struct e1000_hw *hw = &adapter->hw; | 2730 | struct e1000_hw *hw = &adapter->hw; |
2670 | u32 link, tctl; | 2731 | u32 link, tctl; |
2671 | s32 ret_val; | ||
2672 | int tx_pending = 0; | 2732 | int tx_pending = 0; |
2673 | 2733 | ||
2674 | if ((netif_carrier_ok(netdev)) && | 2734 | link = e1000_has_link(adapter); |
2675 | (er32(STATUS) & E1000_STATUS_LU)) | 2735 | if ((netif_carrier_ok(netdev)) && link) { |
2736 | e1000e_enable_receives(adapter); | ||
2676 | goto link_up; | 2737 | goto link_up; |
2677 | |||
2678 | ret_val = mac->ops.check_for_link(hw); | ||
2679 | if ((ret_val == E1000_ERR_PHY) && | ||
2680 | (adapter->hw.phy.type == e1000_phy_igp_3) && | ||
2681 | (er32(CTRL) & | ||
2682 | E1000_PHY_CTRL_GBE_DISABLE)) { | ||
2683 | /* See e1000_kmrn_lock_loss_workaround_ich8lan() */ | ||
2684 | ndev_info(netdev, | ||
2685 | "Gigabit has been disabled, downgrading speed\n"); | ||
2686 | } | 2738 | } |
2687 | 2739 | ||
2688 | if ((e1000e_enable_tx_pkt_filtering(hw)) && | 2740 | if ((e1000e_enable_tx_pkt_filtering(hw)) && |
2689 | (adapter->mng_vlan_id != adapter->hw.mng_cookie.vlan_id)) | 2741 | (adapter->mng_vlan_id != adapter->hw.mng_cookie.vlan_id)) |
2690 | e1000_update_mng_vlan(adapter); | 2742 | e1000_update_mng_vlan(adapter); |
2691 | 2743 | ||
2692 | if ((adapter->hw.media_type == e1000_media_type_internal_serdes) && | ||
2693 | !(er32(TXCW) & E1000_TXCW_ANE)) | ||
2694 | link = adapter->hw.mac.serdes_has_link; | ||
2695 | else | ||
2696 | link = er32(STATUS) & E1000_STATUS_LU; | ||
2697 | |||
2698 | if (link) { | 2744 | if (link) { |
2699 | if (!netif_carrier_ok(netdev)) { | 2745 | if (!netif_carrier_ok(netdev)) { |
2700 | bool txb2b = 1; | 2746 | bool txb2b = 1; |
2747 | /* update snapshot of PHY registers on LSC */ | ||
2701 | mac->ops.get_link_up_info(&adapter->hw, | 2748 | mac->ops.get_link_up_info(&adapter->hw, |
2702 | &adapter->link_speed, | 2749 | &adapter->link_speed, |
2703 | &adapter->link_duplex); | 2750 | &adapter->link_duplex); |
@@ -2770,13 +2817,6 @@ static void e1000_watchdog_task(struct work_struct *work) | |||
2770 | if (!test_bit(__E1000_DOWN, &adapter->state)) | 2817 | if (!test_bit(__E1000_DOWN, &adapter->state)) |
2771 | mod_timer(&adapter->phy_info_timer, | 2818 | mod_timer(&adapter->phy_info_timer, |
2772 | round_jiffies(jiffies + 2 * HZ)); | 2819 | round_jiffies(jiffies + 2 * HZ)); |
2773 | } else { | ||
2774 | /* make sure the receive unit is started */ | ||
2775 | if (adapter->flags & FLAG_RX_NEEDS_RESTART) { | ||
2776 | u32 rctl = er32(RCTL); | ||
2777 | ew32(RCTL, rctl | | ||
2778 | E1000_RCTL_EN); | ||
2779 | } | ||
2780 | } | 2820 | } |
2781 | } else { | 2821 | } else { |
2782 | if (netif_carrier_ok(netdev)) { | 2822 | if (netif_carrier_ok(netdev)) { |
@@ -3413,7 +3453,7 @@ static int e1000_change_mtu(struct net_device *netdev, int new_mtu) | |||
3413 | while (test_and_set_bit(__E1000_RESETTING, &adapter->state)) | 3453 | while (test_and_set_bit(__E1000_RESETTING, &adapter->state)) |
3414 | msleep(1); | 3454 | msleep(1); |
3415 | /* e1000e_down has a dependency on max_frame_size */ | 3455 | /* e1000e_down has a dependency on max_frame_size */ |
3416 | adapter->hw.mac.max_frame_size = max_frame; | 3456 | adapter->max_frame_size = max_frame; |
3417 | if (netif_running(netdev)) | 3457 | if (netif_running(netdev)) |
3418 | e1000e_down(adapter); | 3458 | e1000e_down(adapter); |
3419 | 3459 | ||
@@ -3462,7 +3502,7 @@ static int e1000_mii_ioctl(struct net_device *netdev, struct ifreq *ifr, | |||
3462 | struct mii_ioctl_data *data = if_mii(ifr); | 3502 | struct mii_ioctl_data *data = if_mii(ifr); |
3463 | unsigned long irq_flags; | 3503 | unsigned long irq_flags; |
3464 | 3504 | ||
3465 | if (adapter->hw.media_type != e1000_media_type_copper) | 3505 | if (adapter->hw.phy.media_type != e1000_media_type_copper) |
3466 | return -EOPNOTSUPP; | 3506 | return -EOPNOTSUPP; |
3467 | 3507 | ||
3468 | switch (cmd) { | 3508 | switch (cmd) { |
@@ -3544,8 +3584,9 @@ static int e1000_suspend(struct pci_dev *pdev, pm_message_t state) | |||
3544 | E1000_CTRL_EN_PHY_PWR_MGMT; | 3584 | E1000_CTRL_EN_PHY_PWR_MGMT; |
3545 | ew32(CTRL, ctrl); | 3585 | ew32(CTRL, ctrl); |
3546 | 3586 | ||
3547 | if (adapter->hw.media_type == e1000_media_type_fiber || | 3587 | if (adapter->hw.phy.media_type == e1000_media_type_fiber || |
3548 | adapter->hw.media_type == e1000_media_type_internal_serdes) { | 3588 | adapter->hw.phy.media_type == |
3589 | e1000_media_type_internal_serdes) { | ||
3549 | /* keep the laser running in D3 */ | 3590 | /* keep the laser running in D3 */ |
3550 | ctrl_ext = er32(CTRL_EXT); | 3591 | ctrl_ext = er32(CTRL_EXT); |
3551 | ctrl_ext |= E1000_CTRL_EXT_SDP7_DATA; | 3592 | ctrl_ext |= E1000_CTRL_EXT_SDP7_DATA; |
@@ -3939,10 +3980,10 @@ static int __devinit e1000_probe(struct pci_dev *pdev, | |||
3939 | 3980 | ||
3940 | hw->mac.ops.get_bus_info(&adapter->hw); | 3981 | hw->mac.ops.get_bus_info(&adapter->hw); |
3941 | 3982 | ||
3942 | adapter->hw.phy.wait_for_link = 0; | 3983 | adapter->hw.phy.autoneg_wait_to_complete = 0; |
3943 | 3984 | ||
3944 | /* Copper options */ | 3985 | /* Copper options */ |
3945 | if (adapter->hw.media_type == e1000_media_type_copper) { | 3986 | if (adapter->hw.phy.media_type == e1000_media_type_copper) { |
3946 | adapter->hw.phy.mdix = AUTO_ALL_MODES; | 3987 | adapter->hw.phy.mdix = AUTO_ALL_MODES; |
3947 | adapter->hw.phy.disable_polarity_correction = 0; | 3988 | adapter->hw.phy.disable_polarity_correction = 0; |
3948 | adapter->hw.phy.ms_type = e1000_ms_hw_default; | 3989 | adapter->hw.phy.ms_type = e1000_ms_hw_default; |
@@ -4028,8 +4069,8 @@ static int __devinit e1000_probe(struct pci_dev *pdev, | |||
4028 | /* Initialize link parameters. User can change them with ethtool */ | 4069 | /* Initialize link parameters. User can change them with ethtool */ |
4029 | adapter->hw.mac.autoneg = 1; | 4070 | adapter->hw.mac.autoneg = 1; |
4030 | adapter->fc_autoneg = 1; | 4071 | adapter->fc_autoneg = 1; |
4031 | adapter->hw.mac.original_fc = e1000_fc_default; | 4072 | adapter->hw.fc.original_type = e1000_fc_default; |
4032 | adapter->hw.mac.fc = e1000_fc_default; | 4073 | adapter->hw.fc.type = e1000_fc_default; |
4033 | adapter->hw.phy.autoneg_advertised = 0x2f; | 4074 | adapter->hw.phy.autoneg_advertised = 0x2f; |
4034 | 4075 | ||
4035 | /* ring size defaults */ | 4076 | /* ring size defaults */ |