aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/layerscape/patches-5.4/701-net-0178-staging-dpaa2-mac-add-link-up-down-events-for-dpmac.patch
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/layerscape/patches-5.4/701-net-0178-staging-dpaa2-mac-add-link-up-down-events-for-dpmac.patch')
-rw-r--r--target/linux/layerscape/patches-5.4/701-net-0178-staging-dpaa2-mac-add-link-up-down-events-for-dpmac.patch91
1 files changed, 0 insertions, 91 deletions
diff --git a/target/linux/layerscape/patches-5.4/701-net-0178-staging-dpaa2-mac-add-link-up-down-events-for-dpmac.patch b/target/linux/layerscape/patches-5.4/701-net-0178-staging-dpaa2-mac-add-link-up-down-events-for-dpmac.patch
deleted file mode 100644
index 9fbd8c79ab..0000000000
--- a/target/linux/layerscape/patches-5.4/701-net-0178-staging-dpaa2-mac-add-link-up-down-events-for-dpmac.patch
+++ /dev/null
@@ -1,91 +0,0 @@
-From 3b07b109823a593f43e794cbf44ba3a84ceefbdb Mon Sep 17 00:00:00 2001
-From: Florin Chiculita <florinlaurentiu.chiculita@nxp.com>
-Date: Fri, 23 Aug 2019 18:02:27 +0300
-Subject: [PATCH] staging: dpaa2-mac: add link up/down events for dpmac
-
-Fix a limitation that affects the networking behavior when the user
-issues ifconfig down/up on a DPNI and the link remains down.
-The actual problem was that the mac driver was not aware of the
-dpni link change event. Now, the event is sent by firmware and
-phylib state machine is manipulated conveniently.
-
-Signed-off-by: Florin Chiculita <florinlaurentiu.chiculita@nxp.com>
-Signed-off-by: Ioana Ciornei <ioana.ciornei@nxp.com>
----
- drivers/staging/fsl-dpaa2/mac/dpmac.h | 5 +++++
- drivers/staging/fsl-dpaa2/mac/mac.c | 15 ++++++++++++---
- 2 files changed, 17 insertions(+), 3 deletions(-)
-
---- a/drivers/staging/fsl-dpaa2/mac/dpmac.h
-+++ b/drivers/staging/fsl-dpaa2/mac/dpmac.h
-@@ -124,6 +124,11 @@ int dpmac_destroy(struct fsl_mc_io *mc_i
- * IRQ event - Indicates that the link state changed
- */
- #define DPMAC_IRQ_EVENT_LINK_CHANGED 0x00000002
-+/**
-+ * IRQ event - Indicate if the phy needs to suspend or resume
-+ */
-+#define DPMAC_IRQ_EVENT_LINK_UP_REQ 0x00000004
-+#define DPMAC_IRQ_EVENT_LINK_DOWN_REQ 0x00000008
-
- int dpmac_set_irq_enable(struct fsl_mc_io *mc_io,
- u32 cmd_flags,
---- a/drivers/staging/fsl-dpaa2/mac/mac.c
-+++ b/drivers/staging/fsl-dpaa2/mac/mac.c
-@@ -181,6 +181,7 @@ static void dpaa2_mac_link_changed(struc
- dev_err(&priv->mc_dev->dev, "dpmac_set_link_state: %d\n", err);
- }
-
-+#ifdef CONFIG_FSL_DPAA2_MAC_NETDEVS
- static int dpaa2_mac_open(struct net_device *netdev)
- {
- /* start PHY state machine */
-@@ -188,6 +189,7 @@ static int dpaa2_mac_open(struct net_dev
-
- return 0;
- }
-+#endif
-
- static int dpaa2_mac_stop(struct net_device *netdev)
- {
-@@ -450,6 +452,7 @@ static irqreturn_t dpaa2_mac_irq_handler
- struct device *dev = (struct device *)arg;
- struct fsl_mc_device *mc_dev = to_fsl_mc_device(dev);
- struct dpaa2_mac_priv *priv = dev_get_drvdata(dev);
-+ struct net_device *ndev = priv->netdev;
- struct dpmac_link_cfg link_cfg = { 0 };
- u32 status;
- int err;
-@@ -475,6 +478,12 @@ static irqreturn_t dpaa2_mac_irq_handler
- configure_link(priv, &link_cfg);
- }
-
-+ if (status & DPMAC_IRQ_EVENT_LINK_UP_REQ)
-+ phy_start(ndev->phydev);
-+
-+ if (status & DPMAC_IRQ_EVENT_LINK_DOWN_REQ)
-+ phy_stop(ndev->phydev);
-+
- out:
- dpmac_clear_irq_status(mc_dev->mc_io, 0, mc_dev->mc_handle,
- DPMAC_IRQ_INDEX, status);
-@@ -505,7 +514,9 @@ static int setup_irqs(struct fsl_mc_devi
- }
-
- err = dpmac_set_irq_mask(mc_dev->mc_io, 0, mc_dev->mc_handle,
-- DPMAC_IRQ_INDEX, DPMAC_IRQ_EVENT_LINK_CFG_REQ);
-+ DPMAC_IRQ_INDEX, DPMAC_IRQ_EVENT_LINK_CFG_REQ |
-+ DPMAC_IRQ_EVENT_LINK_UP_REQ |
-+ DPMAC_IRQ_EVENT_LINK_DOWN_REQ);
- if (err) {
- dev_err(&mc_dev->dev, "dpmac_set_irq_mask err %d\n", err);
- goto free_irq;
-@@ -734,8 +745,6 @@ probe_fixed_link:
- dev_info(dev, "Registered fixed PHY.\n");
- }
-
-- dpaa2_mac_open(netdev);
--
- return 0;
-
- err_no_if_mode: