diff options
author | Emil Tantilov <emil.s.tantilov@intel.com> | 2011-02-26 01:40:16 -0500 |
---|---|---|
committer | Jeff Kirsher <jeffrey.t.kirsher@intel.com> | 2011-03-07 21:06:43 -0500 |
commit | 0b0c2b31bdf8d6fb5c14ae70894453ac44d64672 (patch) | |
tree | 6e15145a52fc22d6701ef3db85e6cab05c39ef24 /drivers/net/ixgbe/ixgbe_82598.c | |
parent | a3aeea0ec8d3af854edf7dc983dc8cbe803a43e8 (diff) |
ixgbe: Enable flow control pause parameter auto-negotiation support
This patch enables flow control pause parameters auto-negotiation support
to 82599 based 10G Base-T, backplane devices and multi-speed fiber optics
modules at 1G speed
Signed-off-by: Emil Tantilov <emil.s.tantilov@intel.com>
Tested-by: Stephen Ko <stephen.s.ko@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Diffstat (limited to 'drivers/net/ixgbe/ixgbe_82598.c')
-rw-r--r-- | drivers/net/ixgbe/ixgbe_82598.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/drivers/net/ixgbe/ixgbe_82598.c b/drivers/net/ixgbe/ixgbe_82598.c index dc977b1c8eab..ff23907bde0c 100644 --- a/drivers/net/ixgbe/ixgbe_82598.c +++ b/drivers/net/ixgbe/ixgbe_82598.c | |||
@@ -366,7 +366,7 @@ static s32 ixgbe_fc_enable_82598(struct ixgbe_hw *hw, s32 packetbuf_num) | |||
366 | 366 | ||
367 | /* Negotiate the fc mode to use */ | 367 | /* Negotiate the fc mode to use */ |
368 | ret_val = ixgbe_fc_autoneg(hw); | 368 | ret_val = ixgbe_fc_autoneg(hw); |
369 | if (ret_val) | 369 | if (ret_val == IXGBE_ERR_FLOW_CONTROL) |
370 | goto out; | 370 | goto out; |
371 | 371 | ||
372 | /* Disable any previous flow control settings */ | 372 | /* Disable any previous flow control settings */ |
@@ -384,10 +384,10 @@ static s32 ixgbe_fc_enable_82598(struct ixgbe_hw *hw, s32 packetbuf_num) | |||
384 | * 2: Tx flow control is enabled (we can send pause frames but | 384 | * 2: Tx flow control is enabled (we can send pause frames but |
385 | * we do not support receiving pause frames). | 385 | * we do not support receiving pause frames). |
386 | * 3: Both Rx and Tx flow control (symmetric) are enabled. | 386 | * 3: Both Rx and Tx flow control (symmetric) are enabled. |
387 | * other: Invalid. | ||
388 | #ifdef CONFIG_DCB | 387 | #ifdef CONFIG_DCB |
389 | * 4: Priority Flow Control is enabled. | 388 | * 4: Priority Flow Control is enabled. |
390 | #endif | 389 | #endif |
390 | * other: Invalid. | ||
391 | */ | 391 | */ |
392 | switch (hw->fc.current_mode) { | 392 | switch (hw->fc.current_mode) { |
393 | case ixgbe_fc_none: | 393 | case ixgbe_fc_none: |
@@ -444,9 +444,10 @@ static s32 ixgbe_fc_enable_82598(struct ixgbe_hw *hw, s32 packetbuf_num) | |||
444 | reg = (rx_pba_size - hw->fc.low_water) << 6; | 444 | reg = (rx_pba_size - hw->fc.low_water) << 6; |
445 | if (hw->fc.send_xon) | 445 | if (hw->fc.send_xon) |
446 | reg |= IXGBE_FCRTL_XONE; | 446 | reg |= IXGBE_FCRTL_XONE; |
447 | |||
447 | IXGBE_WRITE_REG(hw, IXGBE_FCRTL(packetbuf_num), reg); | 448 | IXGBE_WRITE_REG(hw, IXGBE_FCRTL(packetbuf_num), reg); |
448 | 449 | ||
449 | reg = (rx_pba_size - hw->fc.high_water) << 10; | 450 | reg = (rx_pba_size - hw->fc.high_water) << 6; |
450 | reg |= IXGBE_FCRTH_FCEN; | 451 | reg |= IXGBE_FCRTH_FCEN; |
451 | 452 | ||
452 | IXGBE_WRITE_REG(hw, IXGBE_FCRTH(packetbuf_num), reg); | 453 | IXGBE_WRITE_REG(hw, IXGBE_FCRTH(packetbuf_num), reg); |