|
@@ -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->port = PORT_FIBRE;
|
|
|
cmd->autoneg = port->autoneg == 1 ? AUTONEG_ENABLE : AUTONEG_DISABLE;
|
|
|
|
|
|
return 0;
|