Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0a967b4a authored by Egil Hjelmeland's avatar Egil Hjelmeland Committed by David S. Miller
Browse files

net: dsa: lan9303: refactor lan9303_get_ethtool_stats



In lan9303_get_ethtool_stats: Get rid of 0x400 constant magic
by using new lan9303_read_switch_reg() inside loop.
Reduced scope of two variables.

Signed-off-by: default avatarEgil Hjelmeland <privat@egil-hjelmeland.no>
Reviewed-by: default avatarAndrew Lunn <andrew@lunn.ch>
Reviewed-by: default avatarFlorian Fainelli <f.fainelli@gmail.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 9c84258e
Loading
Loading
Loading
Loading
+16 −10
Original line number Diff line number Diff line
@@ -435,6 +435,13 @@ static int lan9303_write_switch_port(struct lan9303 *chip, int port,
		chip, LAN9303_SWITCH_PORT_REG(port, regnum), val);
}

static int lan9303_read_switch_port(struct lan9303 *chip, int port,
				    u16 regnum, u32 *val)
{
	return lan9303_read_switch_reg(
		chip, LAN9303_SWITCH_PORT_REG(port, regnum), val);
}

static int lan9303_detect_phy_setup(struct lan9303 *chip)
{
	int reg;
@@ -705,19 +712,18 @@ static void lan9303_get_ethtool_stats(struct dsa_switch *ds, int port,
				      uint64_t *data)
{
	struct lan9303 *chip = ds->priv;
	unsigned int u;

	for (u = 0; u < ARRAY_SIZE(lan9303_mib); u++) {
		u32 reg;
	unsigned int u, poff;
		int ret;

	poff = port * 0x400;
		ret = lan9303_read_switch_port(
			chip, port, lan9303_mib[u].offset, &reg);

	for (u = 0; u < ARRAY_SIZE(lan9303_mib); u++) {
		ret = lan9303_read_switch_reg(chip,
					      lan9303_mib[u].offset + poff,
					      &reg);
		if (ret)
			dev_warn(chip->dev, "Reading status reg %u failed\n",
				 lan9303_mib[u].offset + poff);
			dev_warn(chip->dev, "Reading status port %d reg %u failed\n",
				 port, lan9303_mib[u].offset);
		data[u] = reg;
	}
}