sunxi: remove 3.13 support
[openwrt/svn-archive/archive.git] / target / linux / sunxi / patches-3.13 / 151-7-stmmac-fixup-7.patch
diff --git a/target/linux/sunxi/patches-3.13/151-7-stmmac-fixup-7.patch b/target/linux/sunxi/patches-3.13/151-7-stmmac-fixup-7.patch
deleted file mode 100644 (file)
index 67e0c5b..0000000
+++ /dev/null
@@ -1,146 +0,0 @@
-From 33a23e223749c45ff8099ff9baa235301a3ad07f Mon Sep 17 00:00:00 2001
-From: Srinivas Kandagatla <srinivas.kandagatla@st.com>
-Date: Thu, 16 Jan 2014 10:52:44 +0000
-Subject: [PATCH] net: stmmac: use suspend functions for hibernation
-
-In hibernation freeze case the driver just releases the resources like
-dma buffers, irqs, unregisters the drivers and during restore it does
-register, request the resources. This is not really necessary, as part
-of power management all the data structures are intact, all the
-previously allocated resources can be used after coming out of low
-power.
-
-This patch uses the suspend and resume callbacks for freeze and
-restore which initializes the hardware correctly without unregistering
-or releasing the resources, this should also help in reducing the time
-to restore.
-
-Also this patch fixes a bug in stmmac_pltfr_restore and
-stmmac_pltfr_freeze where it tries to get hold of platform data via
-dev_get_platdata call, which would return NULL in device tree cases and
-the next if statement would crash as there is no NULL check.
-
-Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@st.com>
-Acked-by: Giuseppe Cavallaro <peppe.cavallaro@st.com>
-Signed-off-by: David S. Miller <davem@davemloft.net>
----
- drivers/net/ethernet/stmicro/stmmac/stmmac.h       |  2 -
- drivers/net/ethernet/stmicro/stmmac/stmmac_main.c  | 16 --------
- .../net/ethernet/stmicro/stmmac/stmmac_platform.c  | 44 ++++++----------------
- 3 files changed, 12 insertions(+), 50 deletions(-)
-
-diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac.h b/drivers/net/ethernet/stmicro/stmmac/stmmac.h
-index 5a568015..027f1dd 100644
---- a/drivers/net/ethernet/stmicro/stmmac/stmmac.h
-+++ b/drivers/net/ethernet/stmicro/stmmac/stmmac.h
-@@ -117,8 +117,6 @@ struct stmmac_priv {
- extern const struct stmmac_hwtimestamp stmmac_ptp;
- int stmmac_ptp_register(struct stmmac_priv *priv);
- void stmmac_ptp_unregister(struct stmmac_priv *priv);
--int stmmac_freeze(struct net_device *ndev);
--int stmmac_restore(struct net_device *ndev);
- int stmmac_resume(struct net_device *ndev);
- int stmmac_suspend(struct net_device *ndev);
- int stmmac_dvr_remove(struct net_device *ndev);
-diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
-index 742a83f..c1298a0 100644
---- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
-+++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
-@@ -2912,22 +2912,6 @@ int stmmac_resume(struct net_device *ndev)
-       return 0;
- }
--
--int stmmac_freeze(struct net_device *ndev)
--{
--      if (!ndev || !netif_running(ndev))
--              return 0;
--
--      return stmmac_release(ndev);
--}
--
--int stmmac_restore(struct net_device *ndev)
--{
--      if (!ndev || !netif_running(ndev))
--              return 0;
--
--      return stmmac_open(ndev);
--}
- #endif /* CONFIG_PM */
- /* Driver can be configured w/ and w/ both PCI and Platf drivers
-diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c
-index 9377ee6..6d0bf22 100644
---- a/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c
-+++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c
-@@ -211,55 +211,35 @@ static int stmmac_pltfr_remove(struct platform_device *pdev)
- #ifdef CONFIG_PM
- static int stmmac_pltfr_suspend(struct device *dev)
- {
--      struct net_device *ndev = dev_get_drvdata(dev);
--
--      return stmmac_suspend(ndev);
--}
--
--static int stmmac_pltfr_resume(struct device *dev)
--{
--      struct net_device *ndev = dev_get_drvdata(dev);
--
--      return stmmac_resume(ndev);
--}
--
--static int stmmac_pltfr_freeze(struct device *dev)
--{
-       int ret;
--      struct plat_stmmacenet_data *plat_dat = dev_get_platdata(dev);
-       struct net_device *ndev = dev_get_drvdata(dev);
-+      struct stmmac_priv *priv = netdev_priv(ndev);
-       struct platform_device *pdev = to_platform_device(dev);
--      ret = stmmac_freeze(ndev);
--      if (plat_dat->exit)
--              plat_dat->exit(pdev);
-+      ret = stmmac_suspend(ndev);
-+      if (priv->plat->exit)
-+              priv->plat->exit(pdev);
-       return ret;
- }
--static int stmmac_pltfr_restore(struct device *dev)
-+static int stmmac_pltfr_resume(struct device *dev)
- {
--      struct plat_stmmacenet_data *plat_dat = dev_get_platdata(dev);
-       struct net_device *ndev = dev_get_drvdata(dev);
-+      struct stmmac_priv *priv = netdev_priv(ndev);
-       struct platform_device *pdev = to_platform_device(dev);
--      if (plat_dat->init)
--              plat_dat->init(pdev);
-+      if (priv->plat->init)
-+              priv->plat->init(pdev);
--      return stmmac_restore(ndev);
-+      return stmmac_resume(ndev);
- }
--static const struct dev_pm_ops stmmac_pltfr_pm_ops = {
--      .suspend = stmmac_pltfr_suspend,
--      .resume = stmmac_pltfr_resume,
--      .freeze = stmmac_pltfr_freeze,
--      .thaw = stmmac_pltfr_restore,
--      .restore = stmmac_pltfr_restore,
--};
--#else
--static const struct dev_pm_ops stmmac_pltfr_pm_ops;
- #endif /* CONFIG_PM */
-+static SIMPLE_DEV_PM_OPS(stmmac_pltfr_pm_ops,
-+                      stmmac_pltfr_suspend, stmmac_pltfr_resume);
-+
- static const struct of_device_id stmmac_dt_ids[] = {
-       { .compatible = "st,spear600-gmac"},
-       { .compatible = "snps,dwmac-3.610"},
--- 
-1.8.5.5
-