struct mtk_eth *eth = mac->hw;
        int i, err;
 
-       if (mtk_uses_dsa(dev) && !eth->prog) {
+       if ((mtk_uses_dsa(dev) && !eth->prog) &&
+           !(mac->id == 1 && MTK_HAS_CAPS(eth->soc->caps, MTK_GMAC1_TRGMII))) {
                for (i = 0; i < ARRAY_SIZE(eth->dsa_meta); i++) {
                        struct metadata_dst *md_dst = eth->dsa_meta[i];
 
                }
        } else {
                /* Hardware special tag parsing needs to be disabled if at least
-                * one MAC does not use DSA.
+                * one MAC does not use DSA, or the second MAC of the MT7621 and
+                * MT7623 SoCs is being used.
                 */
                u32 val = mtk_r32(eth, MTK_CDMP_IG_CTRL);
                val &= ~MTK_CDMP_STAG_EN;