|
@@ -2742,7 +2742,7 @@ static u32 check_connection_type(struct mac_regs __iomem * regs)
|
|
|
|
|
|
if (PHYSR0 & PHYSR0_SPDG)
|
|
|
status |= VELOCITY_SPEED_1000;
|
|
|
- if (PHYSR0 & PHYSR0_SPD10)
|
|
|
+ else if (PHYSR0 & PHYSR0_SPD10)
|
|
|
status |= VELOCITY_SPEED_10;
|
|
|
else
|
|
|
status |= VELOCITY_SPEED_100;
|
|
@@ -2851,8 +2851,17 @@ static int velocity_get_settings(struct net_device *dev, struct ethtool_cmd *cmd
|
|
|
u32 status;
|
|
|
status = check_connection_type(vptr->mac_regs);
|
|
|
|
|
|
- cmd->supported = SUPPORTED_TP | SUPPORTED_Autoneg | SUPPORTED_10baseT_Half | SUPPORTED_10baseT_Full | SUPPORTED_100baseT_Half | SUPPORTED_100baseT_Full | SUPPORTED_1000baseT_Half | SUPPORTED_1000baseT_Full;
|
|
|
- if (status & VELOCITY_SPEED_100)
|
|
|
+ cmd->supported = SUPPORTED_TP |
|
|
|
+ SUPPORTED_Autoneg |
|
|
|
+ SUPPORTED_10baseT_Half |
|
|
|
+ SUPPORTED_10baseT_Full |
|
|
|
+ SUPPORTED_100baseT_Half |
|
|
|
+ SUPPORTED_100baseT_Full |
|
|
|
+ SUPPORTED_1000baseT_Half |
|
|
|
+ SUPPORTED_1000baseT_Full;
|
|
|
+ if (status & VELOCITY_SPEED_1000)
|
|
|
+ cmd->speed = SPEED_1000;
|
|
|
+ else if (status & VELOCITY_SPEED_100)
|
|
|
cmd->speed = SPEED_100;
|
|
|
else
|
|
|
cmd->speed = SPEED_10;
|
|
@@ -2896,7 +2905,7 @@ static u32 velocity_get_link(struct net_device *dev)
|
|
|
{
|
|
|
struct velocity_info *vptr = netdev_priv(dev);
|
|
|
struct mac_regs __iomem * regs = vptr->mac_regs;
|
|
|
- return BYTE_REG_BITS_IS_ON(PHYSR0_LINKGD, ®s->PHYSR0) ? 0 : 1;
|
|
|
+ return BYTE_REG_BITS_IS_ON(PHYSR0_LINKGD, ®s->PHYSR0) ? 1 : 0;
|
|
|
}
|
|
|
|
|
|
static void velocity_get_drvinfo(struct net_device *dev, struct ethtool_drvinfo *info)
|