net: dsa: qca8k: make learning configurable and keep off if standalone
authorChristian Marangi <ansuelsmth@gmail.com>
Sun, 30 Jul 2023 07:41:10 +0000 (09:41 +0200)
committerPaolo Abeni <pabeni@redhat.com>
Tue, 1 Aug 2023 10:02:42 +0000 (12:02 +0200)
commit23cfc7172e5297d0bee49ac6f6f8248d1cf0820d
treef064e59ccd4495107da744a14ae9c46c50b58a62
parentde9db136dcc3b60ba99f1f5034fc6ae7af45fa99
net: dsa: qca8k: make learning configurable and keep off if standalone

Address learning should initially be turned off by the driver for port
operation in standalone mode, then the DSA core handles changes to it
via ds->ops->port_bridge_flags().

Currently this is not the case for qca8k where learning is enabled
unconditionally in qca8k_setup for every user port.

Handle ports configured in standalone mode by making the learning
configurable and not enabling it by default.

Implement .port_pre_bridge_flags and .port_bridge_flags dsa ops to
enable learning for bridge that request it and tweak
.port_stp_state_set to correctly disable learning when port is
configured in standalone mode.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
Reviewed-by: Vladimir Oltean <olteanv@gmail.com>
Reviewed-by: Florian Fainelli <florian.fainelli@broadcom.com>
Link: https://lore.kernel.org/r/20230730074113.21889-2-ansuelsmth@gmail.com
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
drivers/net/dsa/qca/qca8k-8xxx.c
drivers/net/dsa/qca/qca8k-common.c
drivers/net/dsa/qca/qca8k.h