| From 236742271a0e0cb819de03bac75635ac0fe8081b Mon Sep 17 00:00:00 2001 |
| From: Kleber Sacilotto de Souza <klebers@linux.vnet.ibm.com> |
| Date: Wed, 4 May 2011 13:05:11 +0000 |
| Subject: [PATCH] ehea: fix wrongly reported speed and port |
| |
| commit dcbe14b91a920657ff3a9ba0efb7c5b5562f956a upstream. |
| |
| Currently EHEA reports to ethtool as supporting 10M, 100M, 1G and |
| 10G and connected to FIBRE independent of the hardware configuration. |
| However, when connected to FIBRE the only supported speed is 10G |
| full-duplex, and the other speeds and modes are only supported |
| when connected to twisted pair. |
| |
| Signed-off-by: Kleber Sacilotto de Souza <klebers@linux.vnet.ibm.com> |
| Acked-by: Breno Leitao <leitao@linux.vnet.ibm.com> |
| Signed-off-by: David S. Miller <davem@davemloft.net> |
| Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com> |
| |
| diff --git a/drivers/net/ehea/ehea_ethtool.c b/drivers/net/ehea/ehea_ethtool.c |
| index 75b099c..f97da2a 100644 |
| --- a/drivers/net/ehea/ehea_ethtool.c |
| +++ b/drivers/net/ehea/ehea_ethtool.c |
| @@ -53,15 +53,20 @@ static int ehea_get_settings(struct net_device *dev, struct ethtool_cmd *cmd) |
| cmd->duplex = -1; |
| } |
| |
| - cmd->supported = (SUPPORTED_10000baseT_Full | SUPPORTED_1000baseT_Full |
| - | SUPPORTED_100baseT_Full | SUPPORTED_100baseT_Half |
| - | SUPPORTED_10baseT_Full | SUPPORTED_10baseT_Half |
| - | SUPPORTED_Autoneg | SUPPORTED_FIBRE); |
| - |
| - cmd->advertising = (ADVERTISED_10000baseT_Full | ADVERTISED_Autoneg |
| - | ADVERTISED_FIBRE); |
| + if (cmd->speed == SPEED_10000) { |
| + cmd->supported = (SUPPORTED_10000baseT_Full | SUPPORTED_FIBRE); |
| + cmd->advertising = (ADVERTISED_10000baseT_Full | ADVERTISED_FIBRE); |
| + cmd->port = PORT_FIBRE; |
| + } else { |
| + cmd->supported = (SUPPORTED_1000baseT_Full | SUPPORTED_100baseT_Full |
| + | SUPPORTED_100baseT_Half | SUPPORTED_10baseT_Full |
| + | SUPPORTED_10baseT_Half | SUPPORTED_Autoneg |
| + | SUPPORTED_TP); |
| + cmd->advertising = (ADVERTISED_1000baseT_Full | ADVERTISED_Autoneg |
| + | ADVERTISED_TP); |
| + cmd->port = PORT_TP; |
| + } |
| |
| - cmd->port = PORT_FIBRE; |
| cmd->autoneg = port->autoneg == 1 ? AUTONEG_ENABLE : AUTONEG_DISABLE; |
| |
| return 0; |
| -- |
| 1.7.7 |
| |