forked from dlink-dir_819/openwrt
DSA silently drops internal phy access to ports >= 32 in dsa_user_phy_read() and dsa_user_phy_write(). The code shows: static int dsa_user_phy_read(struct mii_bus *bus, int addr, int reg) { struct dsa_switch *ds = bus->priv; if (ds->phys_mii_mask & (1 << addr)) return ds->ops->phy_read(ds, addr, reg); return 0xffff; } With ds->phys_mii_mask being a 32 bit variable the reason is clear. So do not only increase the max values but also adapt the needed bitmasks in the dsa and phy code. This fixes the dsa_user_ports() and dsa_cpu_ports() too. While we are here combine the old separated patches because dsa, mdio and phy are tigthly coupled. Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de> Link: https://github.com/openwrt/openwrt/pull/18846 Signed-off-by: Robert Marko <robimarko@gmail.com>