Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 42f3c43b authored by Akeem G. Abodunrin's avatar Akeem G. Abodunrin Committed by Jeff Kirsher
Browse files

igb: Supported and Advertised Pause Frame



This patch add ethtool supports for Supported and Advertised Pause Frame,
based on Adapter Flow Control settings.

Signed-off-by: default avatarAkeem G. Abodunrin <akeem.g.abodunrin@intel.com>
Tested-by: default avatarJeff Pieper <jeffrey.e.pieper@intel.com>
Signed-off-by: default avatarJeff Kirsher <jeffrey.t.kirsher@intel.com>
parent 9936a7bb
Loading
Loading
Loading
Loading
+18 −3
Original line number Diff line number Diff line
@@ -148,9 +148,9 @@ static int igb_get_settings(struct net_device *netdev, struct ethtool_cmd *ecmd)
				   SUPPORTED_100baseT_Full |
				   SUPPORTED_1000baseT_Full|
				   SUPPORTED_Autoneg |
				   SUPPORTED_TP);
		ecmd->advertising = (ADVERTISED_TP |
				     ADVERTISED_Pause);
				   SUPPORTED_TP |
				   SUPPORTED_Pause);
		ecmd->advertising = ADVERTISED_TP;

		if (hw->mac.autoneg == 1) {
			ecmd->advertising |= ADVERTISED_Autoneg;
@@ -158,6 +158,21 @@ static int igb_get_settings(struct net_device *netdev, struct ethtool_cmd *ecmd)
			ecmd->advertising |= hw->phy.autoneg_advertised;
		}

		if (hw->mac.autoneg != 1)
			ecmd->advertising &= ~(ADVERTISED_Pause |
					       ADVERTISED_Asym_Pause);

		if (hw->fc.requested_mode == e1000_fc_full)
			ecmd->advertising |= ADVERTISED_Pause;
		else if (hw->fc.requested_mode == e1000_fc_rx_pause)
			ecmd->advertising |= (ADVERTISED_Pause |
					      ADVERTISED_Asym_Pause);
		else if (hw->fc.requested_mode == e1000_fc_tx_pause)
			ecmd->advertising |=  ADVERTISED_Asym_Pause;
		else
			ecmd->advertising &= ~(ADVERTISED_Pause |
					       ADVERTISED_Asym_Pause);

		ecmd->port = PORT_TP;
		ecmd->phy_address = hw->phy.addr;
	} else {