diff options
author | Vivien Didelot <vivien.didelot@savoirfairelinux.com> | 2018-05-09 17:38:50 +0200 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2018-05-10 22:12:31 +0200 |
commit | 23c9891996959dbde59333b8ed997d66b44fb3ff (patch) | |
tree | d466f0113f86d2257d9748b3bb092d1911e41af0 /drivers/net/dsa/mv88e6xxx/chip.c | |
parent | net: dsa: mv88e6xxx: add a cascade port op (diff) | |
download | linux-23c9891996959dbde59333b8ed997d66b44fb3ff.tar.xz linux-23c9891996959dbde59333b8ed997d66b44fb3ff.zip |
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>
Diffstat (limited to 'drivers/net/dsa/mv88e6xxx/chip.c')
-rw-r--r-- | drivers/net/dsa/mv88e6xxx/chip.c | 11 |
1 files changed, 4 insertions, 7 deletions
diff --git a/drivers/net/dsa/mv88e6xxx/chip.c b/drivers/net/dsa/mv88e6xxx/chip.c index 9b61d5b65b0f..ef753ed89b30 100644 --- a/drivers/net/dsa/mv88e6xxx/chip.c +++ b/drivers/net/dsa/mv88e6xxx/chip.c @@ -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) |