#include <linux/dma/ti-cppi5.h>
 #include <linux/dma/k3-udma-glue.h>
 #include <net/page_pool/helpers.h>
+#include <net/dsa.h>
 #include <net/switchdev.h>
 
 #include "cpsw_ale.h"
 
        common->usage_count++;
 
+       /* VLAN aware CPSW mode is incompatible with some DSA tagging schemes.
+        * Therefore disable VLAN_AWARE mode if any of the ports is a DSA Port.
+        */
+       if (netdev_uses_dsa(ndev)) {
+               reg = readl(common->cpsw_base + AM65_CPSW_REG_CTL);
+               reg &= ~AM65_CPSW_CTL_VLAN_AWARE;
+               writel(reg, common->cpsw_base + AM65_CPSW_REG_CTL);
+       }
+
        am65_cpsw_port_set_sl_mac(port, ndev->dev_addr);
        am65_cpsw_port_enable_dscp_map(port);