Re: [PATCH net-next v4 4/4] net: dsa: mv88e6xxx: mask apparently non-existing phys during probing

From: Marek Behún
Date: Sun Mar 19 2023 - 06:16:25 EST


On Wed, 15 Mar 2023 17:38:46 +0100
Klaus Kudielka <klaus.kudielka@xxxxxxxxx> wrote:

> To avoid excessive mdio bus transactions during probing, mask all phy
> addresses that do not exist (there is a 1:1 mapping between switch port
> number and phy address).
>
> Suggested-by: Andrew Lunn <andrew@xxxxxxx>
> Signed-off-by: Klaus Kudielka <klaus.kudielka@xxxxxxxxx>
> Reviewed-by: Andrew Lunn <andrew@xxxxxxx>
> ---
>
> Notes:
> v2: Patch is new
>
> drivers/net/dsa/mv88e6xxx/chip.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/drivers/net/dsa/mv88e6xxx/chip.c b/drivers/net/dsa/mv88e6xxx/chip.c
> index 29b0f3bb1c..c52798d9ce 100644
> --- a/drivers/net/dsa/mv88e6xxx/chip.c
> +++ b/drivers/net/dsa/mv88e6xxx/chip.c
> @@ -3797,6 +3797,7 @@ static int mv88e6xxx_mdio_register(struct mv88e6xxx_chip *chip,
> bus->read_c45 = mv88e6xxx_mdio_read_c45;
> bus->write_c45 = mv88e6xxx_mdio_write_c45;
> bus->parent = chip->dev;
> + bus->phy_mask = GENMASK(31, mv88e6xxx_num_ports(chip));

shouldnt this be
GENMASK(31, mv88e6xxx_num_ports(chip) + chip->info->phy_base_addr) |
GENMASK(chip->info->phy_base_addr, 0)
?
Or alternatively
~GENMASK(chip->info->phy_base_addr + mv88e6xxx_num_ports(chip),
chip->info->phy_base_addr)

Marek