Andrew, Vivien Didelot <vivien.dide...@savoirfairelinux.com> writes:
> Since several chips have this issue, we can introduce a u16 physid2_mask > member in the mv88e6xxx_info structure and move the check in > mv88e6xxx_phy_read() so that the logic of device (as in Global2) helpers > are not affected by such (necessary) hack. Something like: > > static int mv88e6xxx_phy_read(struct mv88e6xxx_chip *chip, int phy, > int reg, u16 *val) > { > ... > > err = chip->info->ops->phy_read(chip, bus, addr, reg, val); > if (err) > return err; > > if (reg == MII_PHYSID2 && chip->info->physid2_mask) { > /* Some internal PHYs don't have a model number, > * so return the switch family model number directly. > */ > if (!(*val & chip->info->physid2_mask)) > *val |= chip->info->prod_num; if (reg == MII_PHYSID2 && (*val & 0xfff0) == 0) *val |= chip->info->prod_num << 4; then. Do you agree? > } > > return 0; > } Thanks, Vivien