diff options
Diffstat (limited to 'drivers/net/dsa')
| -rw-r--r-- | drivers/net/dsa/microchip/ksz_common.c | 10 | ||||
| -rw-r--r-- | drivers/net/dsa/mv88e6xxx/global1.c | 2 | 
2 files changed, 7 insertions, 5 deletions
| diff --git a/drivers/net/dsa/microchip/ksz_common.c b/drivers/net/dsa/microchip/ksz_common.c index 54e0ca6ed730..86b6464b4525 100644 --- a/drivers/net/dsa/microchip/ksz_common.c +++ b/drivers/net/dsa/microchip/ksz_common.c @@ -1117,11 +1117,6 @@ static int ksz_switch_init(struct ksz_device *dev)  {  	int i; -	mutex_init(&dev->reg_mutex); -	mutex_init(&dev->stats_mutex); -	mutex_init(&dev->alu_mutex); -	mutex_init(&dev->vlan_mutex); -  	dev->ds->ops = &ksz_switch_ops;  	for (i = 0; i < ARRAY_SIZE(ksz_switch_chips); i++) { @@ -1206,6 +1201,11 @@ int ksz_switch_register(struct ksz_device *dev)  	if (dev->pdata)  		dev->chip_id = dev->pdata->chip_id; +	mutex_init(&dev->reg_mutex); +	mutex_init(&dev->stats_mutex); +	mutex_init(&dev->alu_mutex); +	mutex_init(&dev->vlan_mutex); +  	if (ksz_switch_detect(dev))  		return -EINVAL; diff --git a/drivers/net/dsa/mv88e6xxx/global1.c b/drivers/net/dsa/mv88e6xxx/global1.c index d721ccf7d8be..38e399e0f30e 100644 --- a/drivers/net/dsa/mv88e6xxx/global1.c +++ b/drivers/net/dsa/mv88e6xxx/global1.c @@ -567,6 +567,8 @@ int mv88e6xxx_g1_stats_clear(struct mv88e6xxx_chip *chip)  	if (err)  		return err; +	/* Keep the histogram mode bits */ +	val &= MV88E6XXX_G1_STATS_OP_HIST_RX_TX;  	val |= MV88E6XXX_G1_STATS_OP_BUSY | MV88E6XXX_G1_STATS_OP_FLUSH_ALL;  	err = mv88e6xxx_g1_write(chip, MV88E6XXX_G1_STATS_OP, val); | 
