Skip to content

Commit

Permalink
net: dsa: mv88e6xxx: move STU GetNext operation
Browse files Browse the repository at this point in the history
Extract the generic portion of code to issue an STU GetNext operation,
which will be used in other implementations.

Signed-off-by: Vivien Didelot <vivien.didelot@savoirfairelinux.com>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Signed-off-by: David S. Miller <davem@davemloft.net>
  • Loading branch information
Vivien Didelot authored and David S. Miller committed May 1, 2017
1 parent c499a64 commit 66a8e1f
Show file tree
Hide file tree
Showing 3 changed files with 23 additions and 13 deletions.
14 changes: 1 addition & 13 deletions drivers/net/dsa/mv88e6xxx/chip.c
Original file line number Diff line number Diff line change
Expand Up @@ -1422,19 +1422,7 @@ static int _mv88e6xxx_stu_getnext(struct mv88e6xxx_chip *chip, u8 sid,
if (err)
return err;

err = mv88e6xxx_g1_vtu_sid_write(chip, &next);
if (err)
return err;

err = mv88e6xxx_g1_vtu_op(chip, GLOBAL_VTU_OP_STU_GET_NEXT);
if (err)
return err;

err = mv88e6xxx_g1_vtu_sid_read(chip, &next);
if (err)
return err;

err = mv88e6xxx_g1_vtu_vid_read(chip, &next);
err = mv88e6xxx_g1_vtu_stu_getnext(chip, &next);
if (err)
return err;

Expand Down
2 changes: 2 additions & 0 deletions drivers/net/dsa/mv88e6xxx/global1.h
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,8 @@ int mv88e6xxx_g1_vtu_op_wait(struct mv88e6xxx_chip *chip);
int mv88e6xxx_g1_vtu_op(struct mv88e6xxx_chip *chip, u16 op);
int mv88e6xxx_g1_vtu_getnext(struct mv88e6xxx_chip *chip,
struct mv88e6xxx_vtu_entry *entry);
int mv88e6xxx_g1_vtu_stu_getnext(struct mv88e6xxx_chip *chip,
struct mv88e6xxx_vtu_entry *vtu);
int mv88e6xxx_g1_vtu_flush(struct mv88e6xxx_chip *chip);

#endif /* _MV88E6XXX_GLOBAL1_H */
20 changes: 20 additions & 0 deletions drivers/net/dsa/mv88e6xxx/global1_vtu.c
Original file line number Diff line number Diff line change
Expand Up @@ -174,6 +174,26 @@ int mv88e6185_g1_vtu_data_write(struct mv88e6xxx_chip *chip,

/* VLAN Translation Unit Operations */

int mv88e6xxx_g1_vtu_stu_getnext(struct mv88e6xxx_chip *chip,
struct mv88e6xxx_vtu_entry *entry)
{
int err;

err = mv88e6xxx_g1_vtu_sid_write(chip, entry);
if (err)
return err;

err = mv88e6xxx_g1_vtu_op(chip, GLOBAL_VTU_OP_STU_GET_NEXT);
if (err)
return err;

err = mv88e6xxx_g1_vtu_sid_read(chip, entry);
if (err)
return err;

return mv88e6xxx_g1_vtu_vid_read(chip, entry);
}

int mv88e6xxx_g1_vtu_getnext(struct mv88e6xxx_chip *chip,
struct mv88e6xxx_vtu_entry *entry)
{
Expand Down

0 comments on commit 66a8e1f

Please sign in to comment.