[PATCH net-next v2 11/12] net: dsa: vsc73xx: Add bridge support

Pawel Dembicki posted 12 patches 1 year, 6 months ago
There is a newer version of this series
[PATCH net-next v2 11/12] net: dsa: vsc73xx: Add bridge support
Posted by Pawel Dembicki 1 year, 6 months ago
This patch adds bridge support for vsc73xx driver.

Vsc73xx require minimal operations and generic
dsa_tag_8021q_bridge_* api is sufficient.

Signed-off-by: Pawel Dembicki <paweldembicki@gmail.com>
---
v2, v1:
  - Use generic functions instead unnecessary intermediary shims
---
Before patch series split:
https://patchwork.kernel.org/project/netdevbpf/list/?series=841034&state=%2A&archive=both
v8:
  - resend only
v7:
  - added 'Reviewed-by' only
v6:
  - resend only
v5:
  - added 'Reviewed-by' only
v4:
  - remove forward configuration after stp patch refactoring
  - implement new define with max num of bridges for tag8021q devices
v3:
  - All vlan commits was reworked
  - move VLAN_AWR and VLAN_DBLAWR to port setup in other commit
  - drop vlan table upgrade
v2:
  - no changes done
---
 drivers/net/dsa/vitesse-vsc73xx-core.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/drivers/net/dsa/vitesse-vsc73xx-core.c b/drivers/net/dsa/vitesse-vsc73xx-core.c
index 5134a3344324..6606bfdf58b0 100644
--- a/drivers/net/dsa/vitesse-vsc73xx-core.c
+++ b/drivers/net/dsa/vitesse-vsc73xx-core.c
@@ -691,6 +691,9 @@ static int vsc73xx_setup(struct dsa_switch *ds)
 
 	dev_info(vsc->dev, "set up the switch\n");
 
+	ds->untag_bridge_pvid = true;
+	ds->max_num_bridges = DSA_TAG_8021Q_MAX_NUM_BRIDGES;
+
 	/* Issue RESET */
 	vsc73xx_write(vsc, VSC73XX_BLOCK_SYSTEM, 0, VSC73XX_GLORESET,
 		      VSC73XX_GLORESET_MASTER_RESET);
@@ -1690,6 +1693,8 @@ static const struct dsa_switch_ops vsc73xx_ds_ops = {
 	.port_setup = vsc73xx_port_setup,
 	.port_enable = vsc73xx_port_enable,
 	.port_disable = vsc73xx_port_disable,
+	.port_bridge_join = dsa_tag_8021q_bridge_join,
+	.port_bridge_leave = dsa_tag_8021q_bridge_leave,
 	.port_change_mtu = vsc73xx_change_mtu,
 	.port_max_mtu = vsc73xx_get_max_mtu,
 	.port_stp_state_set = vsc73xx_port_stp_state_set,
-- 
2.34.1
Re: [PATCH net-next v2 11/12] net: dsa: vsc73xx: Add bridge support
Posted by Vladimir Oltean 1 year, 6 months ago
On Wed, Jun 19, 2024 at 10:52:17PM +0200, Pawel Dembicki wrote:
> This patch adds bridge support for vsc73xx driver.
> 
> Vsc73xx require minimal operations and generic
> dsa_tag_8021q_bridge_* api is sufficient.
> 
> Signed-off-by: Pawel Dembicki <paweldembicki@gmail.com>
> ---

Other than that:

Reviewed-by: Vladimir Oltean <olteanv@gmail.com>
Re: [PATCH net-next v2 11/12] net: dsa: vsc73xx: Add bridge support
Posted by Vladimir Oltean 1 year, 6 months ago
On Wed, Jun 19, 2024 at 10:52:17PM +0200, Pawel Dembicki wrote:
> This patch adds bridge support for vsc73xx driver.
> 
> Vsc73xx require minimal operations and generic
> dsa_tag_8021q_bridge_* api is sufficient.
> 
> Signed-off-by: Pawel Dembicki <paweldembicki@gmail.com>
> ---
> v2, v1:
>   - Use generic functions instead unnecessary intermediary shims
> ---

Maybe you could add a small comment to the commit message that the
forwarding matrix is taken care of by vsc73xx_port_stp_state_set() ->
vsc73xx_refresh_fwd_map(), which is called immediately after
.port_bridge_join() and .port_bridge_leave().