diff options
Diffstat (limited to 'target/linux/mediatek/patches-4.4/0098-net-next-mediatek-only-trigger-the-tx-watchdog-reset.patch')
-rw-r--r-- | target/linux/mediatek/patches-4.4/0098-net-next-mediatek-only-trigger-the-tx-watchdog-reset.patch | 57 |
1 files changed, 0 insertions, 57 deletions
diff --git a/target/linux/mediatek/patches-4.4/0098-net-next-mediatek-only-trigger-the-tx-watchdog-reset.patch b/target/linux/mediatek/patches-4.4/0098-net-next-mediatek-only-trigger-the-tx-watchdog-reset.patch deleted file mode 100644 index cc18be53b4..0000000000 --- a/target/linux/mediatek/patches-4.4/0098-net-next-mediatek-only-trigger-the-tx-watchdog-reset.patch +++ /dev/null @@ -1,57 +0,0 @@ -From cd1343c14328a5de1a58c47b81b8a2febb31d542 Mon Sep 17 00:00:00 2001 -From: John Crispin <john@phrozen.org> -Date: Tue, 10 May 2016 11:16:30 +0200 -Subject: [PATCH 098/102] net-next: mediatek: only trigger the tx watchdog - reset when all devices are stalled - -Signed-off-by: Sean Wang <keyhaede@gmail.com> -Signed-off-by: John Crispin <john@phrozen.org> ---- - drivers/net/ethernet/mediatek/mtk_eth_soc.c | 14 ++++++++++++-- - drivers/net/ethernet/mediatek/mtk_eth_soc.h | 1 + - 2 files changed, 13 insertions(+), 2 deletions(-) - ---- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c -+++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c -@@ -1267,11 +1267,21 @@ static void mtk_tx_timeout(struct net_de - { - struct mtk_mac *mac = netdev_priv(dev); - struct mtk_eth *eth = mac->hw; -+ int i, reset = 0; - - eth->netdev[mac->id]->stats.tx_errors++; - netif_err(eth, tx_err, dev, - "transmit timed out\n"); -- schedule_work(ð->pending_work); -+ -+ for (i = 0; i < MTK_MAC_COUNT; i++) { -+ if (!eth->netdev[i] || -+ time_after(jiffies, dev_trans_start(eth->netdev[i]) + -+ MTK_WDT_TIMEOUT)) -+ reset++; -+ } -+ -+ if (reset == MTK_MAC_COUNT) -+ schedule_work(ð->pending_work); - } - - static irqreturn_t mtk_handle_irq_rx(int irq, void *_eth) -@@ -1765,7 +1775,7 @@ static int mtk_add_mac(struct mtk_eth *e - mac->hw_stats->reg_offset = id * MTK_STAT_OFFSET; - - SET_NETDEV_DEV(eth->netdev[id], eth->dev); -- eth->netdev[id]->watchdog_timeo = 5 * HZ; -+ eth->netdev[id]->watchdog_timeo = MTK_WDT_TIMEOUT; - eth->netdev[id]->netdev_ops = &mtk_netdev_ops; - eth->netdev[id]->base_addr = (unsigned long)eth->base; - eth->netdev[id]->vlan_features = MTK_HW_FEATURES & ---- a/drivers/net/ethernet/mediatek/mtk_eth_soc.h -+++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.h -@@ -15,6 +15,7 @@ - #ifndef MTK_ETH_H - #define MTK_ETH_H - -+#define MTK_WDT_TIMEOUT (4 * HZ) - #define MTK_QDMA_PAGE_SIZE 2048 - #define MTK_MAX_RX_LENGTH 1536 - #define MTK_TX_DMA_BUF_LEN 0x3fff |