Skip to content

Commit

Permalink
net: usb: lan78xx: remove PHY register access from ethtool get_regs
Browse files Browse the repository at this point in the history
Remove PHY register handling from `lan78xx_get_regs` and
`lan78xx_get_regs_len`. Since the controller can have different PHYs
attached, the first 32 registers are not universally relevant or the
most interesting. Simplify the implementation to focus on MAC and device
registers.

Signed-off-by: Oleksij Rempel <o.rempel@pengutronix.de>
Signed-off-by: NipaLocal <nipa@local>
  • Loading branch information
olerem authored and NipaLocal committed Dec 17, 2024
1 parent dd72c85 commit 4eefdc3
Showing 1 changed file with 2 additions and 21 deletions.
23 changes: 2 additions & 21 deletions drivers/net/usb/lan78xx.c
Original file line number Diff line number Diff line change
Expand Up @@ -2096,10 +2096,7 @@ static int lan78xx_set_pause(struct net_device *net,

static int lan78xx_get_regs_len(struct net_device *netdev)
{
if (!netdev->phydev)
return (sizeof(lan78xx_regs));
else
return (sizeof(lan78xx_regs) + PHY_REG_SIZE);
return sizeof(lan78xx_regs);
}

static void
Expand All @@ -2109,7 +2106,7 @@ lan78xx_get_regs(struct net_device *netdev, struct ethtool_regs *regs,
struct lan78xx_net *dev = netdev_priv(netdev);
unsigned int data_count = 0;
u32 *data = buf;
int i, j, ret;
int i, ret;

/* Read Device/MAC registers */
for (i = 0; i < ARRAY_SIZE(lan78xx_regs); i++) {
Expand All @@ -2124,22 +2121,6 @@ lan78xx_get_regs(struct net_device *netdev, struct ethtool_regs *regs,
data_count++;
}

if (!netdev->phydev)
return;

/* Read PHY registers */
for (j = 0; j < 32; i++, j++) {
ret = phy_read(netdev->phydev, j);
if (ret < 0) {
netdev_warn(dev->net,
"failed to read PHY register 0x%02x\n", j);
goto clean_data;
}

data[i] = ret;
data_count++;
}

return;

clean_data:
Expand Down

0 comments on commit 4eefdc3

Please sign in to comment.