Commit 59b693fb authored by Jay Cliburn's avatar Jay Cliburn Committed by Francois Romieu

via-velocity: fix speed and link status reported by ethtool

The via-velocity driver reports incorrect speed and link detected status
as viewed by ethtool (and probably other tools). This patch fixes those
incorrect reports and prettifies a long line.
Signed-off-by: default avatarJay Cliburn <jacliburn@bellsouth.net>
Signed-off-by: default avatarFrancois Romieu <romieu@fr.zoreil.com>
parent 82d6897f
...@@ -2742,7 +2742,7 @@ static u32 check_connection_type(struct mac_regs __iomem * regs) ...@@ -2742,7 +2742,7 @@ static u32 check_connection_type(struct mac_regs __iomem * regs)
if (PHYSR0 & PHYSR0_SPDG) if (PHYSR0 & PHYSR0_SPDG)
status |= VELOCITY_SPEED_1000; status |= VELOCITY_SPEED_1000;
if (PHYSR0 & PHYSR0_SPD10) else if (PHYSR0 & PHYSR0_SPD10)
status |= VELOCITY_SPEED_10; status |= VELOCITY_SPEED_10;
else else
status |= VELOCITY_SPEED_100; status |= VELOCITY_SPEED_100;
...@@ -2851,8 +2851,17 @@ static int velocity_get_settings(struct net_device *dev, struct ethtool_cmd *cmd ...@@ -2851,8 +2851,17 @@ static int velocity_get_settings(struct net_device *dev, struct ethtool_cmd *cmd
u32 status; u32 status;
status = check_connection_type(vptr->mac_regs); 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; cmd->supported = SUPPORTED_TP |
if (status & VELOCITY_SPEED_100) 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; cmd->speed = SPEED_100;
else else
cmd->speed = SPEED_10; cmd->speed = SPEED_10;
...@@ -2896,7 +2905,7 @@ static u32 velocity_get_link(struct net_device *dev) ...@@ -2896,7 +2905,7 @@ static u32 velocity_get_link(struct net_device *dev)
{ {
struct velocity_info *vptr = netdev_priv(dev); struct velocity_info *vptr = netdev_priv(dev);
struct mac_regs __iomem * regs = vptr->mac_regs; struct mac_regs __iomem * regs = vptr->mac_regs;
return BYTE_REG_BITS_IS_ON(PHYSR0_LINKGD, &regs->PHYSR0) ? 0 : 1; return BYTE_REG_BITS_IS_ON(PHYSR0_LINKGD, &regs->PHYSR0) ? 1 : 0;
} }
static void velocity_get_drvinfo(struct net_device *dev, struct ethtool_drvinfo *info) static void velocity_get_drvinfo(struct net_device *dev, struct ethtool_drvinfo *info)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment