aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/generic/backport-5.10/610-v5.13-45-net-ethernet-mtk_eth_soc-implement-dynamic-interrupt.patch
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/generic/backport-5.10/610-v5.13-45-net-ethernet-mtk_eth_soc-implement-dynamic-interrupt.patch')
-rw-r--r--target/linux/generic/backport-5.10/610-v5.13-45-net-ethernet-mtk_eth_soc-implement-dynamic-interrupt.patch30
1 files changed, 15 insertions, 15 deletions
diff --git a/target/linux/generic/backport-5.10/610-v5.13-45-net-ethernet-mtk_eth_soc-implement-dynamic-interrupt.patch b/target/linux/generic/backport-5.10/610-v5.13-45-net-ethernet-mtk_eth_soc-implement-dynamic-interrupt.patch
index ef4d2e875b..207d8397d8 100644
--- a/target/linux/generic/backport-5.10/610-v5.13-45-net-ethernet-mtk_eth_soc-implement-dynamic-interrupt.patch
+++ b/target/linux/generic/backport-5.10/610-v5.13-45-net-ethernet-mtk_eth_soc-implement-dynamic-interrupt.patch
@@ -28,7 +28,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
MediaTek SoC family.
--- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
+++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
-@@ -1233,12 +1233,13 @@ static void mtk_update_rx_cpu_idx(struct
+@@ -1254,12 +1254,13 @@ static void mtk_update_rx_cpu_idx(struct
static int mtk_poll_rx(struct napi_struct *napi, int budget,
struct mtk_eth *eth)
{
@@ -43,7 +43,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
while (done < budget) {
struct net_device *netdev;
-@@ -1312,6 +1313,7 @@ static int mtk_poll_rx(struct napi_struc
+@@ -1333,6 +1334,7 @@ static int mtk_poll_rx(struct napi_struc
else
skb_checksum_none_assert(skb);
skb->protocol = eth_type_trans(skb, netdev);
@@ -51,7 +51,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
if (netdev->features & NETIF_F_HW_VLAN_CTAG_RX &&
(trxd.rxd2 & RX_DMA_VTAG))
-@@ -1344,6 +1346,12 @@ rx_done:
+@@ -1365,6 +1367,12 @@ rx_done:
mtk_update_rx_cpu_idx(eth);
}
@@ -64,7 +64,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
return done;
}
-@@ -1436,6 +1444,7 @@ static int mtk_poll_tx_pdma(struct mtk_e
+@@ -1457,6 +1465,7 @@ static int mtk_poll_tx_pdma(struct mtk_e
static int mtk_poll_tx(struct mtk_eth *eth, int budget)
{
struct mtk_tx_ring *ring = &eth->tx_ring;
@@ -72,7 +72,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
unsigned int done[MTK_MAX_DEVS];
unsigned int bytes[MTK_MAX_DEVS];
int total = 0, i;
-@@ -1453,8 +1462,14 @@ static int mtk_poll_tx(struct mtk_eth *e
+@@ -1474,8 +1483,14 @@ static int mtk_poll_tx(struct mtk_eth *e
continue;
netdev_completed_queue(eth->netdev[i], done[i], bytes[i]);
total += done[i];
@@ -87,7 +87,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
if (mtk_queue_stopped(eth) &&
(atomic_read(&ring->free_count) > ring->thresh))
mtk_wake_queue(eth);
-@@ -2129,6 +2144,7 @@ static irqreturn_t mtk_handle_irq_rx(int
+@@ -2150,6 +2165,7 @@ static irqreturn_t mtk_handle_irq_rx(int
{
struct mtk_eth *eth = _eth;
@@ -95,7 +95,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
if (likely(napi_schedule_prep(&eth->rx_napi))) {
__napi_schedule(&eth->rx_napi);
mtk_rx_irq_disable(eth, MTK_RX_DONE_INT);
-@@ -2141,6 +2157,7 @@ static irqreturn_t mtk_handle_irq_tx(int
+@@ -2162,6 +2178,7 @@ static irqreturn_t mtk_handle_irq_tx(int
{
struct mtk_eth *eth = _eth;
@@ -103,7 +103,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
if (likely(napi_schedule_prep(&eth->tx_napi))) {
__napi_schedule(&eth->tx_napi);
mtk_tx_irq_disable(eth, MTK_TX_DONE_INT);
-@@ -2325,6 +2342,9 @@ static int mtk_stop(struct net_device *d
+@@ -2346,6 +2363,9 @@ static int mtk_stop(struct net_device *d
napi_disable(&eth->tx_napi);
napi_disable(&eth->rx_napi);
@@ -113,7 +113,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
if (MTK_HAS_CAPS(eth->soc->caps, MTK_QDMA))
mtk_stop_dma(eth, MTK_QDMA_GLO_CFG);
mtk_stop_dma(eth, MTK_PDMA_GLO_CFG);
-@@ -2377,6 +2397,64 @@ err_disable_clks:
+@@ -2398,6 +2418,64 @@ err_disable_clks:
return ret;
}
@@ -178,7 +178,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
static int mtk_hw_init(struct mtk_eth *eth)
{
int i, val, ret;
-@@ -2398,9 +2476,6 @@ static int mtk_hw_init(struct mtk_eth *e
+@@ -2419,9 +2497,6 @@ static int mtk_hw_init(struct mtk_eth *e
goto err_disable_pm;
}
@@ -188,7 +188,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
/* disable delay and normal interrupt */
mtk_tx_irq_disable(eth, ~0);
mtk_rx_irq_disable(eth, ~0);
-@@ -2439,11 +2514,11 @@ static int mtk_hw_init(struct mtk_eth *e
+@@ -2460,11 +2535,11 @@ static int mtk_hw_init(struct mtk_eth *e
/* Enable RX VLan Offloading */
mtk_w32(eth, 1, MTK_CDMP_EG_CTRL);
@@ -203,7 +203,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
mtk_tx_irq_disable(eth, ~0);
mtk_rx_irq_disable(eth, ~0);
-@@ -2948,6 +3023,13 @@ static int mtk_probe(struct platform_dev
+@@ -2969,6 +3044,13 @@ static int mtk_probe(struct platform_dev
spin_lock_init(&eth->page_lock);
spin_lock_init(&eth->tx_irq_lock);
spin_lock_init(&eth->rx_irq_lock);
@@ -269,7 +269,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
/* QDMA Interrupt grouping registers */
#define MTK_QDMA_INT_GRP1 0x1a20
-@@ -843,6 +849,7 @@ struct mtk_sgmii {
+@@ -863,6 +869,7 @@ struct mtk_sgmii {
* @page_lock: Make sure that register operations are atomic
* @tx_irq__lock: Make sure that IRQ register operations are atomic
* @rx_irq__lock: Make sure that IRQ register operations are atomic
@@ -277,7 +277,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
* @dummy_dev: we run 2 netdevs on 1 physical DMA ring and need a
* dummy for NAPI to work
* @netdev: The netdev instances
-@@ -861,6 +868,14 @@ struct mtk_sgmii {
+@@ -881,6 +888,14 @@ struct mtk_sgmii {
* @rx_ring_qdma: Pointer to the memory holding info about the QDMA RX ring
* @tx_napi: The TX NAPI struct
* @rx_napi: The RX NAPI struct
@@ -292,7 +292,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
* @scratch_ring: Newer SoCs need memory for a second HW managed TX ring
* @phy_scratch_ring: physical address of scratch_ring
* @scratch_head: The scratch memory that scratch_ring points to.
-@@ -905,6 +920,18 @@ struct mtk_eth {
+@@ -925,6 +940,18 @@ struct mtk_eth {
const struct mtk_soc_data *soc;