summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatt Carlson <mcarlson@broadcom.com>2011-06-13 13:39:00 +0000
committerDavid S. Miller <davem@conan.davemloft.net>2011-06-15 11:11:57 -0400
commit5bb09778e2196770d218e82904f15b558d9a1e50 (patch)
tree95aa4c9fdead4ce9f404cef89d2f9c9f6527cbe3
parentad0fad9eb2577ffc2d1a4fd522e6a71fd51127fd (diff)
tg3: Show flowctrl settings through get_settings()
This patch adds code to present the flow control advertisements through the ethtool get_settings callback. Signed-off-by: Matt Carlson <mcarlson@broadcom.com> Reviewed-by: Michael Chan <mchan@broadcom.com> Reviewed-by: Benjamin Li <benli@broadcom.com> Signed-off-by: David S. Miller <davem@conan.davemloft.net>
-rw-r--r--drivers/net/tg3.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/drivers/net/tg3.c b/drivers/net/tg3.c
index b4f5e923515f..7b1e2abf0cea 100644
--- a/drivers/net/tg3.c
+++ b/drivers/net/tg3.c
@@ -9936,6 +9936,18 @@ static int tg3_get_settings(struct net_device *dev, struct ethtool_cmd *cmd)
}
cmd->advertising = tp->link_config.advertising;
+ if (tg3_flag(tp, PAUSE_AUTONEG)) {
+ if (tp->link_config.flowctrl & FLOW_CTRL_RX) {
+ if (tp->link_config.flowctrl & FLOW_CTRL_TX) {
+ cmd->advertising |= ADVERTISED_Pause;
+ } else {
+ cmd->advertising |= ADVERTISED_Pause |
+ ADVERTISED_Asym_Pause;
+ }
+ } else if (tp->link_config.flowctrl & FLOW_CTRL_TX) {
+ cmd->advertising |= ADVERTISED_Asym_Pause;
+ }
+ }
if (netif_running(dev)) {
ethtool_cmd_speed_set(cmd, tp->link_config.active_speed);
cmd->duplex = tp->link_config.active_duplex;