> 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