File tree Expand file tree Collapse file tree 1 file changed +10
-0
lines changed Expand file tree Collapse file tree 1 file changed +10
-0
lines changed Original file line number Diff line number Diff line change 32
32
#include <linux/dma/ti-cppi5.h>
33
33
#include <linux/dma/k3-udma-glue.h>
34
34
#include <net/page_pool/helpers.h>
35
+ #include <net/dsa.h>
35
36
#include <net/switchdev.h>
36
37
37
38
#include "cpsw_ale.h"
@@ -1014,6 +1015,15 @@ static int am65_cpsw_nuss_ndo_slave_open(struct net_device *ndev)
1014
1015
1015
1016
common -> usage_count ++ ;
1016
1017
1018
+ /* VLAN aware CPSW mode is incompatible with some DSA tagging schemes.
1019
+ * Therefore disable VLAN_AWARE mode if any of the ports is a DSA Port.
1020
+ */
1021
+ if (netdev_uses_dsa (ndev )) {
1022
+ reg = readl (common -> cpsw_base + AM65_CPSW_REG_CTL );
1023
+ reg &= ~AM65_CPSW_CTL_VLAN_AWARE ;
1024
+ writel (reg , common -> cpsw_base + AM65_CPSW_REG_CTL );
1025
+ }
1026
+
1017
1027
am65_cpsw_port_set_sl_mac (port , ndev -> dev_addr );
1018
1028
am65_cpsw_port_enable_dscp_map (port );
1019
1029
You can’t perform that action at this time.
0 commit comments