}
skb_record_rx_queue(skb, 0);
-@@ -2856,15 +2863,30 @@ static netdev_features_t mtk_fix_feature
+@@ -2859,15 +2866,30 @@ static netdev_features_t mtk_fix_feature
static int mtk_set_features(struct net_device *dev, netdev_features_t features)
{
}
/* wait for DMA to finish whatever it is doing before we start using it again */
-@@ -3161,11 +3183,45 @@ found:
+@@ -3164,11 +3186,45 @@ found:
return NOTIFY_DONE;
}
err = phylink_of_phy_connect(mac->phylink, mac->of_node, 0);
if (err) {
-@@ -3686,6 +3742,10 @@ static int mtk_hw_init(struct mtk_eth *e
+@@ -3689,6 +3745,10 @@ static int mtk_hw_init(struct mtk_eth *e
*/
val = mtk_r32(eth, MTK_CDMQ_IG_CTRL);
mtk_w32(eth, val | MTK_CDMQ_STAG_EN, MTK_CDMQ_IG_CTRL);
/* Enable RX VLan Offloading */
mtk_w32(eth, 1, MTK_CDMP_EG_CTRL);
-@@ -3922,6 +3982,12 @@ static int mtk_free_dev(struct mtk_eth *
+@@ -3908,6 +3968,12 @@ static int mtk_free_dev(struct mtk_eth *
free_netdev(eth->netdev[i]);
}
/* CDMP Ingress Control Register */
#define MTK_CDMP_IG_CTRL 0x400
#define MTK_CDMP_STAG_EN BIT(0)
-@@ -1170,6 +1176,8 @@ struct mtk_eth {
+@@ -1164,6 +1170,8 @@ struct mtk_eth {
int ip_align;