|
@@ -147,20 +147,7 @@
|
|
|
|
|
|
|
|
#include "mtk_eth_soc.h"
|
|
#include "mtk_eth_soc.h"
|
|
|
|
|
|
|
|
-@@ -69,10 +71,12 @@ u32 mtk_m32(struct mtk_eth *eth, u32 mas
|
|
|
|
|
- {
|
|
|
|
|
- u32 val;
|
|
|
|
|
-
|
|
|
|
|
-+ spin_lock(ð->page_lock);
|
|
|
|
|
- val = mtk_r32(eth, reg);
|
|
|
|
|
- val &= ~mask;
|
|
|
|
|
- val |= set;
|
|
|
|
|
- mtk_w32(eth, val, reg);
|
|
|
|
|
-+ spin_unlock(ð->page_lock);
|
|
|
|
|
- return reg;
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
-@@ -1298,8 +1302,16 @@ static int mtk_poll_rx(struct napi_struc
|
|
|
|
|
|
|
+@@ -1298,8 +1312,16 @@ static int mtk_poll_rx(struct napi_struc
|
|
|
(trxd.rxd2 & RX_DMA_VTAG))
|
|
(trxd.rxd2 & RX_DMA_VTAG))
|
|
|
__vlan_hwaccel_put_tag(skb, htons(ETH_P_8021Q),
|
|
__vlan_hwaccel_put_tag(skb, htons(ETH_P_8021Q),
|
|
|
RX_DMA_VID(trxd.rxd3));
|
|
RX_DMA_VID(trxd.rxd3));
|
|
@@ -179,7 +166,7 @@
|
|
|
|
|
|
|
|
ring->data[idx] = new_data;
|
|
ring->data[idx] = new_data;
|
|
|
rxd->rxd1 = (unsigned int)dma_addr;
|
|
rxd->rxd1 = (unsigned int)dma_addr;
|
|
|
-@@ -2216,6 +2228,9 @@ static int mtk_open(struct net_device *d
|
|
|
|
|
|
|
+@@ -2216,6 +2238,9 @@ static int mtk_open(struct net_device *d
|
|
|
mtk_tx_irq_enable(eth, MTK_TX_DONE_INT);
|
|
mtk_tx_irq_enable(eth, MTK_TX_DONE_INT);
|
|
|
mtk_rx_irq_enable(eth, MTK_RX_DONE_INT);
|
|
mtk_rx_irq_enable(eth, MTK_RX_DONE_INT);
|
|
|
refcount_set(ð->dma_refcnt, 1);
|
|
refcount_set(ð->dma_refcnt, 1);
|
|
@@ -189,7 +176,7 @@
|
|
|
}
|
|
}
|
|
|
else
|
|
else
|
|
|
refcount_inc(ð->dma_refcnt);
|
|
refcount_inc(ð->dma_refcnt);
|
|
|
-@@ -2274,6 +2289,9 @@ static int mtk_stop(struct net_device *d
|
|
|
|
|
|
|
+@@ -2274,6 +2299,9 @@ static int mtk_stop(struct net_device *d
|
|
|
|
|
|
|
|
mtk_dma_free(eth);
|
|
mtk_dma_free(eth);
|
|
|
|
|
|
|
@@ -199,7 +186,7 @@
|
|
|
return 0;
|
|
return 0;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-@@ -2733,6 +2751,27 @@ static int mtk_set_rxnfc(struct net_devi
|
|
|
|
|
|
|
+@@ -2733,6 +2761,27 @@ static int mtk_set_rxnfc(struct net_devi
|
|
|
return ret;
|
|
return ret;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -227,7 +214,7 @@
|
|
|
static const struct ethtool_ops mtk_ethtool_ops = {
|
|
static const struct ethtool_ops mtk_ethtool_ops = {
|
|
|
.get_link_ksettings = mtk_get_link_ksettings,
|
|
.get_link_ksettings = mtk_get_link_ksettings,
|
|
|
.set_link_ksettings = mtk_set_link_ksettings,
|
|
.set_link_ksettings = mtk_set_link_ksettings,
|
|
|
-@@ -2764,6 +2803,9 @@ static const struct net_device_ops mtk_n
|
|
|
|
|
|
|
+@@ -2764,6 +2813,9 @@ static const struct net_device_ops mtk_n
|
|
|
#ifdef CONFIG_NET_POLL_CONTROLLER
|
|
#ifdef CONFIG_NET_POLL_CONTROLLER
|
|
|
.ndo_poll_controller = mtk_poll_controller,
|
|
.ndo_poll_controller = mtk_poll_controller,
|
|
|
#endif
|
|
#endif
|
|
@@ -237,7 +224,7 @@
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
static int mtk_add_mac(struct mtk_eth *eth, struct device_node *np)
|
|
static int mtk_add_mac(struct mtk_eth *eth, struct device_node *np)
|
|
|
-@@ -3097,6 +3139,7 @@ static const struct mtk_soc_data mt7622_
|
|
|
|
|
|
|
+@@ -3097,6 +3149,7 @@ static const struct mtk_soc_data mt7622_
|
|
|
.hw_features = MTK_HW_FEATURES,
|
|
.hw_features = MTK_HW_FEATURES,
|
|
|
.required_clks = MT7622_CLKS_BITMAP,
|
|
.required_clks = MT7622_CLKS_BITMAP,
|
|
|
.required_pctl = false,
|
|
.required_pctl = false,
|