net: dsa: mv88e6xxx: global1_atu: Add helper for get next
[ Upstream commit c5f299d592617847124900d75e5765cb0368ffae ]
When retrieving the ATU statistics, and ATU get next has to be
performed to trigger the ATU to collect the statistics. Export a
helper from global1_atu to perform this.
Signed-off-by: Andrew Lunn <andrew@lunn.ch>
Signed-off-by: David S. Miller <davem@davemloft.net>
Stable-dep-of: 528876d867a2 ("net: dsa: mv88e6xxx: Fix out-of-bound access")
Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
parent
4d63207fa6
commit
c86fd1b4ce
4 changed files with 9 additions and 10 deletions
|
|
@ -339,5 +339,6 @@ int mv88e6390_g1_vtu_loadpurge(struct mv88e6xxx_chip *chip,
|
|||
int mv88e6xxx_g1_vtu_flush(struct mv88e6xxx_chip *chip);
|
||||
int mv88e6xxx_g1_vtu_prob_irq_setup(struct mv88e6xxx_chip *chip);
|
||||
void mv88e6xxx_g1_vtu_prob_irq_free(struct mv88e6xxx_chip *chip);
|
||||
int mv88e6xxx_g1_atu_get_next(struct mv88e6xxx_chip *chip, u16 fid);
|
||||
|
||||
#endif /* _MV88E6XXX_GLOBAL1_H */
|
||||
|
|
|
|||
|
|
@ -122,6 +122,11 @@ static int mv88e6xxx_g1_atu_op(struct mv88e6xxx_chip *chip, u16 fid, u16 op)
|
|||
return mv88e6xxx_g1_atu_op_wait(chip);
|
||||
}
|
||||
|
||||
int mv88e6xxx_g1_atu_get_next(struct mv88e6xxx_chip *chip, u16 fid)
|
||||
{
|
||||
return mv88e6xxx_g1_atu_op(chip, fid, MV88E6XXX_G1_ATU_OP_GET_NEXT_DB);
|
||||
}
|
||||
|
||||
/* Offset 0x0C: ATU Data Register */
|
||||
|
||||
static int mv88e6xxx_g1_atu_data_read(struct mv88e6xxx_chip *chip,
|
||||
|
|
|
|||
|
|
@ -288,16 +288,9 @@ int mv88e6xxx_g2_atu_stats_set(struct mv88e6xxx_chip *chip, u16 kind, u16 bin)
|
|||
kind | bin);
|
||||
}
|
||||
|
||||
int mv88e6xxx_g2_atu_stats_get(struct mv88e6xxx_chip *chip)
|
||||
int mv88e6xxx_g2_atu_stats_get(struct mv88e6xxx_chip *chip, u16 *stats)
|
||||
{
|
||||
int err;
|
||||
u16 val;
|
||||
|
||||
err = mv88e6xxx_g2_read(chip, MV88E6XXX_G2_ATU_STATS, &val);
|
||||
if (err)
|
||||
return err;
|
||||
|
||||
return val & MV88E6XXX_G2_ATU_STATS_MASK;
|
||||
return mv88e6xxx_g2_read(chip, MV88E6XXX_G2_ATU_STATS, stats);
|
||||
}
|
||||
|
||||
/* Offset 0x0F: Priority Override Table */
|
||||
|
|
|
|||
|
|
@ -364,7 +364,7 @@ extern const struct mv88e6xxx_gpio_ops mv88e6352_gpio_ops;
|
|||
int mv88e6xxx_g2_scratch_gpio_set_smi(struct mv88e6xxx_chip *chip,
|
||||
bool external);
|
||||
int mv88e6xxx_g2_atu_stats_set(struct mv88e6xxx_chip *chip, u16 kind, u16 bin);
|
||||
int mv88e6xxx_g2_atu_stats_get(struct mv88e6xxx_chip *chip);
|
||||
int mv88e6xxx_g2_atu_stats_get(struct mv88e6xxx_chip *chip, u16 *stats);
|
||||
|
||||
#else /* !CONFIG_NET_DSA_MV88E6XXX_GLOBAL2 */
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue