From: Mark Rustad <mark.d.rus...@intel.com>

All the MACs supported by ixgbe support pause frames, so indicate
that support in ethtool. Also set advertising according to requested
mode.

Signed-off-by: Mark Rustad <mark.d.rus...@intel.com>
Tested-by: Andrew Bowers <andrewx.bow...@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirs...@intel.com>
---
 drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)

diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c 
b/drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c
index 9547191..730a99f 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c
@@ -313,6 +313,25 @@ static int ixgbe_get_settings(struct net_device *netdev,
                break;
        }
 
+       /* Indicate pause support */
+       ecmd->supported |= SUPPORTED_Pause;
+
+       switch (hw->fc.requested_mode) {
+       case ixgbe_fc_full:
+               ecmd->advertising |= ADVERTISED_Pause;
+               break;
+       case ixgbe_fc_rx_pause:
+               ecmd->advertising |= ADVERTISED_Pause |
+                                    ADVERTISED_Asym_Pause;
+               break;
+       case ixgbe_fc_tx_pause:
+               ecmd->advertising |= ADVERTISED_Asym_Pause;
+               break;
+       default:
+               ecmd->advertising &= ~(ADVERTISED_Pause |
+                                      ADVERTISED_Asym_Pause);
+       }
+
        if (netif_carrier_ok(netdev)) {
                switch (adapter->link_speed) {
                case IXGBE_LINK_SPEED_10GB_FULL:
-- 
2.7.4

Reply via email to