> The port's EgressMode, FrameMode and EtherType are really tied together > to compose the mode of the port.
Setting the EtherType is somewhat separate. It is only needed on ports using EDSA. And that can only happen on a CPU port. Humm, actually, i set it when i should not. But putting this in a wrapper actually hides this. > Could you add an helper in chip.c like: > > static int mv88e6xxx_set_port_mode(struct mv88e6xxx_chip *chip, int port, > enum mv88e6xxx_frame_mode frame_mode, > u16 egress_mode, bool egress_unknown, > u16 ethertype) > { > int err; > > if (chip->info->ops->port_set_frame_mode) { > err = chip->info->ops->port_set_frame_mode(chip, port, > frame_mode); > if (err) > return err; > } Ignoring that it is not implemented here is wrong. It must be implemented, or the device is not going to work. It is a question of, do we want an oops, or return an error code. New version coming. Andrew