|
@@ -1104,34 +1104,13 @@ s32 e1000e_config_fc_after_link_up(struct e1000_hw *hw)
|
|
|
(mii_nway_lp_ability_reg & NWAY_LPAR_ASM_DIR)) {
|
|
|
mac->fc = e1000_fc_rx_pause;
|
|
|
hw_dbg(hw, "Flow Control = RX PAUSE frames only.\r\n");
|
|
|
- }
|
|
|
- /* Per the IEEE spec, at this point flow control should be
|
|
|
- * disabled. However, we want to consider that we could
|
|
|
- * be connected to a legacy switch that doesn't advertise
|
|
|
- * desired flow control, but can be forced on the link
|
|
|
- * partner. So if we advertised no flow control, that is
|
|
|
- * what we will resolve to. If we advertised some kind of
|
|
|
- * receive capability (Rx Pause Only or Full Flow Control)
|
|
|
- * and the link partner advertised none, we will configure
|
|
|
- * ourselves to enable Rx Flow Control only. We can do
|
|
|
- * this safely for two reasons: If the link partner really
|
|
|
- * didn't want flow control enabled, and we enable Rx, no
|
|
|
- * harm done since we won't be receiving any PAUSE frames
|
|
|
- * anyway. If the intent on the link partner was to have
|
|
|
- * flow control enabled, then by us enabling RX only, we
|
|
|
- * can at least receive pause frames and process them.
|
|
|
- * This is a good idea because in most cases, since we are
|
|
|
- * predominantly a server NIC, more times than not we will
|
|
|
- * be asked to delay transmission of packets than asking
|
|
|
- * our link partner to pause transmission of frames.
|
|
|
- */
|
|
|
- else if ((mac->original_fc == e1000_fc_none) ||
|
|
|
- (mac->original_fc == e1000_fc_tx_pause)) {
|
|
|
+ } else {
|
|
|
+ /*
|
|
|
+ * Per the IEEE spec, at this point flow control
|
|
|
+ * should be disabled.
|
|
|
+ */
|
|
|
mac->fc = e1000_fc_none;
|
|
|
hw_dbg(hw, "Flow Control = NONE.\r\n");
|
|
|
- } else {
|
|
|
- mac->fc = e1000_fc_rx_pause;
|
|
|
- hw_dbg(hw, "Flow Control = RX PAUSE frames only.\r\n");
|
|
|
}
|
|
|
|
|
|
/* Now we need to do one last check... If we auto-
|