Simplify calculation of chip->phy_addr_base in lan9303_detect_phy_setup().

Use GENMASK to calculate phys_mii_mask from LAN9303_NUM_PORTS and
phy_addr_base.

Signed-off-by: Egil Hjelmeland <pri...@egil-hjelmeland.no>
---
 drivers/net/dsa/lan9303-core.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/drivers/net/dsa/lan9303-core.c b/drivers/net/dsa/lan9303-core.c
index 3088cdc5d205..4efb772dbc7e 100644
--- a/drivers/net/dsa/lan9303-core.c
+++ b/drivers/net/dsa/lan9303-core.c
@@ -495,10 +495,7 @@ static int lan9303_detect_phy_setup(struct lan9303 *chip)
                return reg;
        }
 
-       if ((reg != 0) && (reg != 0xffff))
-               chip->phy_addr_base = 1;
-       else
-               chip->phy_addr_base = 0;
+       chip->phy_addr_base = reg != 0 && reg != 0xffff;
 
        dev_dbg(chip->dev, "Phy setup '%s' detected\n",
                chip->phy_addr_base ? "1-2-3" : "0-1-2");
@@ -1283,13 +1280,16 @@ static const struct dsa_switch_ops lan9303_switch_ops = 
{
 
 static int lan9303_register_switch(struct lan9303 *chip)
 {
+       int base;
+
        chip->ds = dsa_switch_alloc(chip->dev, LAN9303_NUM_PORTS);
        if (!chip->ds)
                return -ENOMEM;
 
        chip->ds->priv = chip;
        chip->ds->ops = &lan9303_switch_ops;
-       chip->ds->phys_mii_mask = chip->phy_addr_base ? 0xe : 0x7;
+       base = chip->phy_addr_base;
+       chip->ds->phys_mii_mask = GENMASK(LAN9303_NUM_PORTS - 1 + base, base);
 
        return dsa_register_switch(chip->ds);
 }
-- 
2.14.1

Reply via email to