mirror of
https://github.com/torvalds/linux.git
synced 2024-12-05 18:41:23 +00:00
net: dsa: mv88e6xxx: set device number
All Marvell switches supported by mv88e6xxx have to set their device number in the Global Control 2 register. Extract this in a read then write function, called from the device mapping setup code. 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>
This commit is contained in:
parent
02317e6836
commit
23c9891996
@ -1053,6 +1053,10 @@ static int mv88e6xxx_devmap_setup(struct mv88e6xxx_chip *chip)
|
||||
return err;
|
||||
}
|
||||
|
||||
err = mv88e6xxx_g1_set_device_number(chip, chip->ds->index);
|
||||
if (err)
|
||||
return err;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -2160,15 +2164,8 @@ static int mv88e6xxx_set_ageing_time(struct dsa_switch *ds,
|
||||
|
||||
static int mv88e6xxx_g1_setup(struct mv88e6xxx_chip *chip)
|
||||
{
|
||||
struct dsa_switch *ds = chip->ds;
|
||||
int err;
|
||||
|
||||
/* Disable remote management, and set the switch's DSA device number. */
|
||||
err = mv88e6xxx_g1_write(chip, MV88E6XXX_G1_CTL2,
|
||||
(ds->index & 0x1f));
|
||||
if (err)
|
||||
return err;
|
||||
|
||||
/* Configure the IP ToS mapping registers. */
|
||||
err = mv88e6xxx_g1_write(chip, MV88E6XXX_G1_IP_PRI_0, 0x0000);
|
||||
if (err)
|
||||
|
@ -389,6 +389,13 @@ int mv88e6390_g1_stats_set_histogram(struct mv88e6xxx_chip *chip)
|
||||
return err;
|
||||
}
|
||||
|
||||
int mv88e6xxx_g1_set_device_number(struct mv88e6xxx_chip *chip, int index)
|
||||
{
|
||||
return mv88e6xxx_g1_ctl2_mask(chip,
|
||||
MV88E6XXX_G1_CTL2_DEVICE_NUMBER_MASK,
|
||||
index);
|
||||
}
|
||||
|
||||
/* Offset 0x1d: Statistics Operation 2 */
|
||||
|
||||
int mv88e6xxx_g1_stats_wait(struct mv88e6xxx_chip *chip)
|
||||
|
@ -207,6 +207,7 @@
|
||||
#define MV88E6185_G1_CTL2_CASCADE_PORT_MASK 0xf000
|
||||
#define MV88E6185_G1_CTL2_CASCADE_PORT_NONE 0xe000
|
||||
#define MV88E6185_G1_CTL2_CASCADE_PORT_MULTI 0xf000
|
||||
#define MV88E6XXX_G1_CTL2_DEVICE_NUMBER_MASK 0x001f
|
||||
|
||||
/* Offset 0x1D: Stats Operation Register */
|
||||
#define MV88E6XXX_G1_STATS_OP 0x1d
|
||||
@ -256,6 +257,8 @@ int mv88e6390_g1_mgmt_rsvd2cpu(struct mv88e6xxx_chip *chip);
|
||||
|
||||
int mv88e6185_g1_set_cascade_port(struct mv88e6xxx_chip *chip, int port);
|
||||
|
||||
int mv88e6xxx_g1_set_device_number(struct mv88e6xxx_chip *chip, int index);
|
||||
|
||||
int mv88e6xxx_g1_atu_set_learn2all(struct mv88e6xxx_chip *chip, bool learn2all);
|
||||
int mv88e6xxx_g1_atu_set_age_time(struct mv88e6xxx_chip *chip,
|
||||
unsigned int msecs);
|
||||
|
Loading…
Reference in New Issue
Block a user