aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/ixgbe/ixgbe_82598.c
diff options
context:
space:
mode:
authorEmil Tantilov <emil.s.tantilov@intel.com>2011-02-26 01:40:16 -0500
committerJeff Kirsher <jeffrey.t.kirsher@intel.com>2011-03-07 21:06:43 -0500
commit0b0c2b31bdf8d6fb5c14ae70894453ac44d64672 (patch)
tree6e15145a52fc22d6701ef3db85e6cab05c39ef24 /drivers/net/ixgbe/ixgbe_82598.c
parenta3aeea0ec8d3af854edf7dc983dc8cbe803a43e8 (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.c7
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);