ixgbe: allow to disable flow control
authorWenzhuo Lu <wenzhuo.lu@intel.com>
Wed, 8 Jul 2015 01:14:05 +0000 (09:14 +0800)
committerThomas Monjalon <thomas.monjalon@6wind.com>
Fri, 10 Jul 2015 16:05:56 +0000 (18:05 +0200)
There's a parameter "autoneg on|off" in testpmd CLI "set flow_ctrl ...". This
parameter is used to enable/disable auto negotiation for flow control. But it's
not supported yet.
The auto negotiation is enabled by default, we have no way to disable it. This
patch lets the parameter "autoneg on|off" be supproted.

Signed-off-by: Wenzhuo Lu <wenzhuo.lu@intel.com>
Acked-by: Changchun Ouyang <changchun.ouyang@intel.com>
drivers/net/ixgbe/ixgbe_ethdev.c

index aa6074fda248e59a1b708357c70841ed116be6f4..8d681252621325aa183d22fb9ca5c30ca261843d 100644 (file)
@@ -2576,8 +2576,6 @@ ixgbe_flow_ctrl_set(struct rte_eth_dev *dev, struct rte_eth_fc_conf *fc_conf)
        PMD_INIT_FUNC_TRACE();
 
        hw = IXGBE_DEV_PRIVATE_TO_HW(dev->data->dev_private);
-       if (fc_conf->autoneg != !hw->fc.disable_fc_autoneg)
-               return -ENOTSUP;
        rx_buf_size = IXGBE_READ_REG(hw, IXGBE_RXPBSIZE(0));
        PMD_INIT_LOG(DEBUG, "Rx packet buffer size = 0x%x", rx_buf_size);
 
@@ -2598,6 +2596,7 @@ ixgbe_flow_ctrl_set(struct rte_eth_dev *dev, struct rte_eth_fc_conf *fc_conf)
        hw->fc.high_water[0]  = fc_conf->high_water;
        hw->fc.low_water[0]   = fc_conf->low_water;
        hw->fc.send_xon       = fc_conf->send_xon;
+       hw->fc.disable_fc_autoneg = !fc_conf->autoneg;
 
        err = ixgbe_fc_enable(hw);