ehea: fix wrongly reported speed and port
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>
This commit is contained in:
parent
b9f47a3aae
commit
dcbe14b91a
|
@ -55,15 +55,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->autoneg = port->autoneg == 1 ? AUTONEG_ENABLE : AUTONEG_DISABLE;
|
||||
|
||||
return 0;
|
||||
|
|
Loading…
Reference in New Issue