net: dsa: mv88e6xxx: Set STP disable state in port_disable
authorAndrew Lunn <andrew@lunn.ch>
Tue, 30 Apr 2019 22:08:30 +0000 (00:08 +0200)
committerDavid S. Miller <davem@davemloft.net>
Sat, 4 May 2019 03:53:06 +0000 (23:53 -0400)
When requested to disable a port, set the port STP state to disabled.
This fully disables the port and should save some power.

Signed-off-by: Andrew Lunn <andrew@lunn.ch>
Reviewed-by: Vivien Didelot <vivien.didelot@gmail.com>
Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/dsa/mv88e6xxx/chip.c

index 489a899..dc891d8 100644 (file)
@@ -2428,6 +2428,9 @@ static void mv88e6xxx_port_disable(struct dsa_switch *ds, int port)
 
        mutex_lock(&chip->reg_lock);
 
+       if (mv88e6xxx_port_set_state(chip, port, BR_STATE_DISABLED))
+               dev_err(chip->dev, "failed to disable port\n");
+
        if (chip->info->ops->serdes_irq_free)
                chip->info->ops->serdes_irq_free(chip, port);