|
@@ -345,7 +345,7 @@ Signed-off-by: David S. Miller <[email protected]>
|
|
|
|
|
|
return 0;
|
|
|
}
|
|
|
-@@ -2126,9 +2185,9 @@ static int mtk_dma_busy_wait(struct mtk_
|
|
|
+@@ -2129,9 +2188,9 @@ static int mtk_dma_busy_wait(struct mtk_
|
|
|
u32 val;
|
|
|
|
|
|
if (MTK_HAS_CAPS(eth->soc->caps, MTK_QDMA))
|
|
@@ -357,7 +357,7 @@ Signed-off-by: David S. Miller <[email protected]>
|
|
|
|
|
|
ret = readx_poll_timeout_atomic(__raw_readl, eth->base + reg, val,
|
|
|
!(val & (MTK_RX_DMA_BUSY | MTK_TX_DMA_BUSY)),
|
|
|
-@@ -2186,8 +2245,8 @@ static int mtk_dma_init(struct mtk_eth *
|
|
|
+@@ -2189,8 +2248,8 @@ static int mtk_dma_init(struct mtk_eth *
|
|
|
* automatically
|
|
|
*/
|
|
|
mtk_w32(eth, FC_THRES_DROP_MODE | FC_THRES_DROP_EN |
|
|
@@ -368,7 +368,7 @@ Signed-off-by: David S. Miller <[email protected]>
|
|
|
}
|
|
|
|
|
|
return 0;
|
|
|
-@@ -2261,13 +2320,14 @@ static irqreturn_t mtk_handle_irq_tx(int
|
|
|
+@@ -2264,13 +2323,14 @@ static irqreturn_t mtk_handle_irq_tx(int
|
|
|
static irqreturn_t mtk_handle_irq(int irq, void *_eth)
|
|
|
{
|
|
|
struct mtk_eth *eth = _eth;
|
|
@@ -387,7 +387,7 @@ Signed-off-by: David S. Miller <[email protected]>
|
|
|
mtk_handle_irq_tx(irq, _eth);
|
|
|
}
|
|
|
|
|
|
-@@ -2291,6 +2351,7 @@ static void mtk_poll_controller(struct n
|
|
|
+@@ -2294,6 +2354,7 @@ static void mtk_poll_controller(struct n
|
|
|
static int mtk_start_dma(struct mtk_eth *eth)
|
|
|
{
|
|
|
u32 rx_2b_offset = (NET_IP_ALIGN == 2) ? MTK_RX_2B_OFFSET : 0;
|
|
@@ -395,7 +395,7 @@ Signed-off-by: David S. Miller <[email protected]>
|
|
|
int err;
|
|
|
|
|
|
err = mtk_dma_init(eth);
|
|
|
-@@ -2305,16 +2366,15 @@ static int mtk_start_dma(struct mtk_eth
|
|
|
+@@ -2308,16 +2369,15 @@ static int mtk_start_dma(struct mtk_eth
|
|
|
MTK_TX_BT_32DWORDS | MTK_NDP_CO_PRO |
|
|
|
MTK_RX_DMA_EN | MTK_RX_2B_OFFSET |
|
|
|
MTK_RX_BT_32DWORDS,
|
|
@@ -415,7 +415,7 @@ Signed-off-by: David S. Miller <[email protected]>
|
|
|
}
|
|
|
|
|
|
return 0;
|
|
|
-@@ -2440,8 +2500,8 @@ static int mtk_stop(struct net_device *d
|
|
|
+@@ -2443,8 +2503,8 @@ static int mtk_stop(struct net_device *d
|
|
|
cancel_work_sync(ð->tx_dim.work);
|
|
|
|
|
|
if (MTK_HAS_CAPS(eth->soc->caps, MTK_QDMA))
|
|
@@ -426,7 +426,7 @@ Signed-off-by: David S. Miller <[email protected]>
|
|
|
|
|
|
mtk_dma_free(eth);
|
|
|
|
|
|
-@@ -2495,6 +2555,7 @@ static void mtk_dim_rx(struct work_struc
|
|
|
+@@ -2498,6 +2558,7 @@ static void mtk_dim_rx(struct work_struc
|
|
|
{
|
|
|
struct dim *dim = container_of(work, struct dim, work);
|
|
|
struct mtk_eth *eth = container_of(dim, struct mtk_eth, rx_dim);
|
|
@@ -434,7 +434,7 @@ Signed-off-by: David S. Miller <[email protected]>
|
|
|
struct dim_cq_moder cur_profile;
|
|
|
u32 val, cur;
|
|
|
|
|
|
-@@ -2502,7 +2563,7 @@ static void mtk_dim_rx(struct work_struc
|
|
|
+@@ -2505,7 +2566,7 @@ static void mtk_dim_rx(struct work_struc
|
|
|
dim->profile_ix);
|
|
|
spin_lock_bh(ð->dim_lock);
|
|
|
|
|
@@ -443,7 +443,7 @@ Signed-off-by: David S. Miller <[email protected]>
|
|
|
val &= MTK_PDMA_DELAY_TX_MASK;
|
|
|
val |= MTK_PDMA_DELAY_RX_EN;
|
|
|
|
|
|
-@@ -2512,9 +2573,9 @@ static void mtk_dim_rx(struct work_struc
|
|
|
+@@ -2515,9 +2576,9 @@ static void mtk_dim_rx(struct work_struc
|
|
|
cur = min_t(u32, cur_profile.pkts, MTK_PDMA_DELAY_PINT_MASK);
|
|
|
val |= cur << MTK_PDMA_DELAY_RX_PINT_SHIFT;
|
|
|
|
|
@@ -455,7 +455,7 @@ Signed-off-by: David S. Miller <[email protected]>
|
|
|
|
|
|
spin_unlock_bh(ð->dim_lock);
|
|
|
|
|
|
-@@ -2525,6 +2586,7 @@ static void mtk_dim_tx(struct work_struc
|
|
|
+@@ -2528,6 +2589,7 @@ static void mtk_dim_tx(struct work_struc
|
|
|
{
|
|
|
struct dim *dim = container_of(work, struct dim, work);
|
|
|
struct mtk_eth *eth = container_of(dim, struct mtk_eth, tx_dim);
|
|
@@ -463,7 +463,7 @@ Signed-off-by: David S. Miller <[email protected]>
|
|
|
struct dim_cq_moder cur_profile;
|
|
|
u32 val, cur;
|
|
|
|
|
|
-@@ -2532,7 +2594,7 @@ static void mtk_dim_tx(struct work_struc
|
|
|
+@@ -2535,7 +2597,7 @@ static void mtk_dim_tx(struct work_struc
|
|
|
dim->profile_ix);
|
|
|
spin_lock_bh(ð->dim_lock);
|
|
|
|
|
@@ -472,7 +472,7 @@ Signed-off-by: David S. Miller <[email protected]>
|
|
|
val &= MTK_PDMA_DELAY_RX_MASK;
|
|
|
val |= MTK_PDMA_DELAY_TX_EN;
|
|
|
|
|
|
-@@ -2542,9 +2604,9 @@ static void mtk_dim_tx(struct work_struc
|
|
|
+@@ -2545,9 +2607,9 @@ static void mtk_dim_tx(struct work_struc
|
|
|
cur = min_t(u32, cur_profile.pkts, MTK_PDMA_DELAY_PINT_MASK);
|
|
|
val |= cur << MTK_PDMA_DELAY_TX_PINT_SHIFT;
|
|
|
|
|
@@ -484,7 +484,7 @@ Signed-off-by: David S. Miller <[email protected]>
|
|
|
|
|
|
spin_unlock_bh(ð->dim_lock);
|
|
|
|
|
|
-@@ -2555,6 +2617,7 @@ static int mtk_hw_init(struct mtk_eth *e
|
|
|
+@@ -2558,6 +2620,7 @@ static int mtk_hw_init(struct mtk_eth *e
|
|
|
{
|
|
|
u32 dma_mask = ETHSYS_DMA_AG_MAP_PDMA | ETHSYS_DMA_AG_MAP_QDMA |
|
|
|
ETHSYS_DMA_AG_MAP_PPE;
|
|
@@ -492,7 +492,7 @@ Signed-off-by: David S. Miller <[email protected]>
|
|
|
int i, val, ret;
|
|
|
|
|
|
if (test_and_set_bit(MTK_HW_INIT, ð->state))
|
|
|
-@@ -2629,10 +2692,10 @@ static int mtk_hw_init(struct mtk_eth *e
|
|
|
+@@ -2632,10 +2695,10 @@ static int mtk_hw_init(struct mtk_eth *e
|
|
|
mtk_rx_irq_disable(eth, ~0);
|
|
|
|
|
|
/* FE int grouping */
|
|
@@ -507,7 +507,7 @@ Signed-off-by: David S. Miller <[email protected]>
|
|
|
mtk_w32(eth, 0x21021000, MTK_FE_INT_GRP);
|
|
|
|
|
|
return 0;
|
|
|
-@@ -3164,14 +3227,6 @@ static int mtk_probe(struct platform_dev
|
|
|
+@@ -3167,14 +3230,6 @@ static int mtk_probe(struct platform_dev
|
|
|
if (IS_ERR(eth->base))
|
|
|
return PTR_ERR(eth->base);
|
|
|
|
|
@@ -522,7 +522,7 @@ Signed-off-by: David S. Miller <[email protected]>
|
|
|
if (MTK_HAS_CAPS(eth->soc->caps, MTK_SOC_MT7628)) {
|
|
|
eth->rx_dma_l4_valid = RX_DMA_L4_VALID_PDMA;
|
|
|
eth->ip_align = NET_IP_ALIGN;
|
|
|
-@@ -3405,6 +3460,7 @@ static int mtk_remove(struct platform_de
|
|
|
+@@ -3408,6 +3463,7 @@ static int mtk_remove(struct platform_de
|
|
|
}
|
|
|
|
|
|
static const struct mtk_soc_data mt2701_data = {
|
|
@@ -530,7 +530,7 @@ Signed-off-by: David S. Miller <[email protected]>
|
|
|
.caps = MT7623_CAPS | MTK_HWLRO,
|
|
|
.hw_features = MTK_HW_FEATURES,
|
|
|
.required_clks = MT7623_CLKS_BITMAP,
|
|
|
-@@ -3416,6 +3472,7 @@ static const struct mtk_soc_data mt2701_
|
|
|
+@@ -3419,6 +3475,7 @@ static const struct mtk_soc_data mt2701_
|
|
|
};
|
|
|
|
|
|
static const struct mtk_soc_data mt7621_data = {
|
|
@@ -538,7 +538,7 @@ Signed-off-by: David S. Miller <[email protected]>
|
|
|
.caps = MT7621_CAPS,
|
|
|
.hw_features = MTK_HW_FEATURES,
|
|
|
.required_clks = MT7621_CLKS_BITMAP,
|
|
|
-@@ -3428,6 +3485,7 @@ static const struct mtk_soc_data mt7621_
|
|
|
+@@ -3431,6 +3488,7 @@ static const struct mtk_soc_data mt7621_
|
|
|
};
|
|
|
|
|
|
static const struct mtk_soc_data mt7622_data = {
|
|
@@ -546,7 +546,7 @@ Signed-off-by: David S. Miller <[email protected]>
|
|
|
.ana_rgc3 = 0x2028,
|
|
|
.caps = MT7622_CAPS | MTK_HWLRO,
|
|
|
.hw_features = MTK_HW_FEATURES,
|
|
|
-@@ -3441,6 +3499,7 @@ static const struct mtk_soc_data mt7622_
|
|
|
+@@ -3444,6 +3502,7 @@ static const struct mtk_soc_data mt7622_
|
|
|
};
|
|
|
|
|
|
static const struct mtk_soc_data mt7623_data = {
|
|
@@ -554,7 +554,7 @@ Signed-off-by: David S. Miller <[email protected]>
|
|
|
.caps = MT7623_CAPS | MTK_HWLRO,
|
|
|
.hw_features = MTK_HW_FEATURES,
|
|
|
.required_clks = MT7623_CLKS_BITMAP,
|
|
|
-@@ -3453,6 +3512,7 @@ static const struct mtk_soc_data mt7623_
|
|
|
+@@ -3456,6 +3515,7 @@ static const struct mtk_soc_data mt7623_
|
|
|
};
|
|
|
|
|
|
static const struct mtk_soc_data mt7629_data = {
|
|
@@ -562,7 +562,7 @@ Signed-off-by: David S. Miller <[email protected]>
|
|
|
.ana_rgc3 = 0x128,
|
|
|
.caps = MT7629_CAPS | MTK_HWLRO,
|
|
|
.hw_features = MTK_HW_FEATURES,
|
|
|
-@@ -3465,6 +3525,7 @@ static const struct mtk_soc_data mt7629_
|
|
|
+@@ -3468,6 +3528,7 @@ static const struct mtk_soc_data mt7629_
|
|
|
};
|
|
|
|
|
|
static const struct mtk_soc_data rt5350_data = {
|