summaryrefslogtreecommitdiff
path: root/drivers/net/ethernet/microchip/sparx5/sparx5_main.c
diff options
context:
space:
mode:
authorSteen Hegelund <steen.hegelund@microchip.com>2021-06-24 09:07:54 +0200
committerDavid S. Miller <davem@davemloft.net>2021-06-24 11:28:13 -0700
commit78eab33bb68b565176917b24a0b72a2f5b938d84 (patch)
tree52e4b574ee7cf2ae2dc39bb451edcea4e5be4b29 /drivers/net/ethernet/microchip/sparx5/sparx5_main.c
parentb37a1bae742f92cc9b1f777d54e04ee3d86bbfc2 (diff)
net: sparx5: add vlan support
This adds Sparx5 VLAN support. Sparx5 has more VLAN features than provided here, but these will be added in later series. For now we only add the basic L2 features. Signed-off-by: Steen Hegelund <steen.hegelund@microchip.com> Signed-off-by: Bjarni Jonasson <bjarni.jonasson@microchip.com> Signed-off-by: Lars Povlsen <lars.povlsen@microchip.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/microchip/sparx5/sparx5_main.c')
-rw-r--r--drivers/net/ethernet/microchip/sparx5/sparx5_main.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/drivers/net/ethernet/microchip/sparx5/sparx5_main.c b/drivers/net/ethernet/microchip/sparx5/sparx5_main.c
index c5f8f4a10475..857f6454b574 100644
--- a/drivers/net/ethernet/microchip/sparx5/sparx5_main.c
+++ b/drivers/net/ethernet/microchip/sparx5/sparx5_main.c
@@ -282,7 +282,8 @@ static int sparx5_create_port(struct sparx5 *sparx5,
}
spx5_port->conf = config->conf;
- /* VLAN support to be added in later patches */
+ /* Setup VLAN */
+ sparx5_vlan_port_setup(sparx5, spx5_port->portno);
/* Create a phylink for PHY management. Also handles SFPs */
spx5_port->phylink_config.dev = &spx5_port->ndev->dev;
@@ -578,7 +579,9 @@ static int sparx5_start(struct sparx5 *sparx5)
sparx5,
QFWD_SWITCH_PORT_MODE(idx));
- /* Forwarding masks to be added in later patches */
+ /* Init masks */
+ sparx5_update_fwd(sparx5);
+
/* CPU copy CPU pgids */
spx5_wr(ANA_AC_PGID_MISC_CFG_PGID_CPU_COPY_ENA_SET(1),
sparx5, ANA_AC_PGID_MISC_CFG(PGID_CPU));
@@ -594,7 +597,8 @@ static int sparx5_start(struct sparx5 *sparx5)
/* Init MAC table, ageing */
sparx5_mact_init(sparx5);
- /* VLAN support to be added in later patches */
+ /* Setup VLANs */
+ sparx5_vlan_init(sparx5);
/* Add host mode BC address (points only to CPU) */
sparx5_mact_learn(sparx5, PGID_CPU, broadcast, NULL_VID);