From f5f173e2b794bd996fa6171bb6b18f13c4ed1e90 Mon Sep 17 00:00:00 2001 From: John Crispin Date: Mon, 23 May 2016 11:20:20 +0200 Subject: mediatek: update patches * fixes NAND * adds latest ethernet patches Signed-off-by: John Crispin --- ...k-move-the-pending_work-struct-to-the-dev.patch | 102 --------------------- 1 file changed, 102 deletions(-) delete mode 100644 target/linux/mediatek/patches-4.4/0076-net-mediatek-move-the-pending_work-struct-to-the-dev.patch (limited to 'target/linux/mediatek/patches-4.4/0076-net-mediatek-move-the-pending_work-struct-to-the-dev.patch') diff --git a/target/linux/mediatek/patches-4.4/0076-net-mediatek-move-the-pending_work-struct-to-the-dev.patch b/target/linux/mediatek/patches-4.4/0076-net-mediatek-move-the-pending_work-struct-to-the-dev.patch deleted file mode 100644 index 4af1f0dd24..0000000000 --- a/target/linux/mediatek/patches-4.4/0076-net-mediatek-move-the-pending_work-struct-to-the-dev.patch +++ /dev/null @@ -1,102 +0,0 @@ -From d42de6ec9325c29d0f59c5df74a5cbceb00ddd9d Mon Sep 17 00:00:00 2001 -From: John Crispin -Date: Tue, 29 Mar 2016 17:24:24 +0200 -Subject: [PATCH 76/91] net: mediatek: move the pending_work struct to the - device generic struct - -The worker always touches both netdevs. It is ethernet core and not MAC -specific. We only need one worker, which belongs into the ethernets core struct. - -Signed-off-by: John Crispin ---- - drivers/net/ethernet/mediatek/mtk_eth_soc.c | 10 ++++------ - drivers/net/ethernet/mediatek/mtk_eth_soc.h | 4 ++-- - 2 files changed, 6 insertions(+), 8 deletions(-) - ---- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c -+++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c -@@ -1193,7 +1193,7 @@ static void mtk_tx_timeout(struct net_de - eth->netdev[mac->id]->stats.tx_errors++; - netif_err(eth, tx_err, dev, - "transmit timed out\n"); -- schedule_work(&mac->pending_work); -+ schedule_work(ð->pending_work); - } - - static irqreturn_t mtk_handle_irq(int irq, void *_eth) -@@ -1438,7 +1438,7 @@ static void mtk_pending_work(struct work - - /* stop all devices to make sure that dma is properly shut down */ - for (i = 0; i < MTK_MAC_COUNT; i++) { -- if (!netif_oper_up(eth->netdev[i])) -+ if (!eth->netdev[i]) - continue; - mtk_stop(eth->netdev[i]); - __set_bit(i, &restart); -@@ -1464,15 +1464,13 @@ static int mtk_cleanup(struct mtk_eth *e - int i; - - for (i = 0; i < MTK_MAC_COUNT; i++) { -- struct mtk_mac *mac = netdev_priv(eth->netdev[i]); -- - if (!eth->netdev[i]) - continue; - - unregister_netdev(eth->netdev[i]); - free_netdev(eth->netdev[i]); -- cancel_work_sync(&mac->pending_work); - } -+ cancel_work_sync(ð->pending_work); - - return 0; - } -@@ -1660,7 +1658,6 @@ static int mtk_add_mac(struct mtk_eth *e - mac->id = id; - mac->hw = eth; - mac->of_node = np; -- INIT_WORK(&mac->pending_work, mtk_pending_work); - - mac->hw_stats = devm_kzalloc(eth->dev, - sizeof(*mac->hw_stats), -@@ -1762,6 +1759,7 @@ static int mtk_probe(struct platform_dev - - eth->dev = &pdev->dev; - eth->msg_enable = netif_msg_init(mtk_msg_level, MTK_DEFAULT_MSG_ENABLE); -+ INIT_WORK(ð->pending_work, mtk_pending_work); - - err = mtk_hw_init(eth); - if (err) ---- a/drivers/net/ethernet/mediatek/mtk_eth_soc.h -+++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.h -@@ -363,6 +363,7 @@ struct mtk_rx_ring { - * @clk_gp1: The gmac1 clock - * @clk_gp2: The gmac2 clock - * @mii_bus: If there is a bus we need to create an instance for it -+ * @pending_work: The workqueue used to reset the dma ring - */ - - struct mtk_eth { -@@ -389,6 +390,7 @@ struct mtk_eth { - struct clk *clk_gp1; - struct clk *clk_gp2; - struct mii_bus *mii_bus; -+ struct work_struct pending_work; - }; - - /* struct mtk_mac - the structure that holds the info about the MACs of the -@@ -398,7 +400,6 @@ struct mtk_eth { - * @hw: Backpointer to our main datastruture - * @hw_stats: Packet statistics counter - * @phy_dev: The attached PHY if available -- * @pending_work: The workqueue used to reset the dma ring - */ - struct mtk_mac { - int id; -@@ -406,7 +407,6 @@ struct mtk_mac { - struct mtk_eth *hw; - struct mtk_hw_stats *hw_stats; - struct phy_device *phy_dev; -- struct work_struct pending_work; - }; - - /* the struct describing the SoC. these are declared in the soc_xyz.c files */ -- cgit v1.2.3