diff mbox series

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

Message ID 20240619205220.965844-12-paweldembicki@gmail.com (mailing list archive)
State Changes Requested
Delegated to: Netdev Maintainers
Headers show
Series net: dsa: vsc73xx: Implement VLAN operations | expand

Checks

Context Check Description
netdev/series_format success Posting correctly formatted
netdev/tree_selection success Clearly marked for net-next
netdev/ynl success Generated files up to date; no warnings/errors; no diff in generated;
netdev/fixes_present success Fixes tag not required for -next series
netdev/header_inline success No static functions without inline keyword in header files
netdev/build_32bit success Errors and warnings before: 845 this patch: 845
netdev/build_tools success No tools touched, skip
netdev/cc_maintainers success CCed 7 of 7 maintainers
netdev/build_clang success Errors and warnings before: 849 this patch: 849
netdev/verify_signedoff success Signed-off-by tag matches author and committer
netdev/deprecated_api success None detected
netdev/check_selftest success No net selftest shell script
netdev/verify_fixes success No Fixes tag
netdev/build_allmodconfig_warn success Errors and warnings before: 849 this patch: 849
netdev/checkpatch success total: 0 errors, 0 warnings, 0 checks, 17 lines checked
netdev/build_clang_rust success No Rust files in patch. Skipping build
netdev/kdoc success Errors and warnings before: 0 this patch: 0
netdev/source_inline success Was 0 now: 0
netdev/contest success net-next-2024-06-20--03-00 (tests: 659)

Commit Message

Pawel Dembicki June 19, 2024, 8:52 p.m. UTC
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(+)

Comments

Vladimir Oltean June 20, 2024, 12:42 p.m. UTC | #1
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().
Vladimir Oltean June 20, 2024, 12:44 p.m. UTC | #2
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>
diff mbox series

Patch

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,