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

Commit 891daf49 authored by Romain Perier's avatar Romain Perier Committed by David S. Miller
Browse files

net: dsa: mv88e6xxx: Don't forbid MDIO I/Os for PHY addr >= num_of_ports



Some Marvell ethernet switches have internal ethernet transceivers with
hardcoded phy addresses. These addresses can be greater than the number
of ports or its value might be different than the associated port number.
This is for example the case for MV88E6341 that has 6 ports and internal
Port 1 to Port4 PHYs mapped at SMI addresses from 0x11 to 0x14.

This commits fixes the issue by removing the condition in MDIO callbacks.

Signed-off-by: default avatarRomain Perier <romain.perier@free-electrons.com>
Reviewed-by: default avatarAndrew Lunn <andrew@lunn.ch>
Reviewed-by: default avatarVivien Didelot <vivien.didelot@savoirfairelinux.com>
Signed-off-by: default avatarGregory CLEMENT <gregory.clement@free-electrons.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent cdaf25df
Loading
Loading
Loading
Loading
+0 −6
Original line number Original line Diff line number Diff line
@@ -2917,9 +2917,6 @@ static int mv88e6xxx_mdio_read(struct mii_bus *bus, int phy, int reg)
	u16 val;
	u16 val;
	int err;
	int err;


	if (phy >= mv88e6xxx_num_ports(chip))
		return 0xffff;

	if (!chip->info->ops->phy_read)
	if (!chip->info->ops->phy_read)
		return -EOPNOTSUPP;
		return -EOPNOTSUPP;


@@ -2936,9 +2933,6 @@ static int mv88e6xxx_mdio_write(struct mii_bus *bus, int phy, int reg, u16 val)
	struct mv88e6xxx_chip *chip = mdio_bus->chip;
	struct mv88e6xxx_chip *chip = mdio_bus->chip;
	int err;
	int err;


	if (phy >= mv88e6xxx_num_ports(chip))
		return 0xffff;

	if (!chip->info->ops->phy_write)
	if (!chip->info->ops->phy_write)
		return -EOPNOTSUPP;
		return -EOPNOTSUPP;