> + for (dev = 0; dev < 32; ++dev) { > + for (port = 0; port < 16; ++port) { > + err = mv88e6xxx_pvt_map(chip, dev, port); > + if (err) > + return err; > + } > + } > + > + return 0;
Hi Vivien How about adding MV88E6XXX_MAX_PVT_SWITCHES and MV88E6XXX_MAX_PVT_PORTS? > +static int mv88e6xxx_g2_pvt_op(struct mv88e6xxx_chip *chip, int src_dev, > + int src_port, u16 op) > +{ > + int err; > + > + /* 9-bit Cross-chip PVT pointer: with GLOBAL2_MISC_5_BIT_PORT cleared, > + * source device is 5-bit, source port is 4-bit. > + */ > + op |= (src_dev & 0x1f) << 4; > + op |= (src_port & 0xf); So here, are you hard coding the knowledge that we passed false to mv88e6xxx_g2_misc_5_bit_port()? It kind of defeats the point of having the parameter. Maybe simplify the code and remove the parameter? Andrew