[<prev] [next>] [day] [month] [year] [list]
Message-ID: <MW4PR17MB4243A33292249C6E58AF7922DFA70@MW4PR17MB4243.namprd17.prod.outlook.com>
Date: Fri, 15 Jan 2021 17:20:42 +0000
From: "Badel, Laurent" <LaurentBadel@...on.com>
To: "davem@...emloft.net" <davem@...emloft.net>,
"m.felsch@...gutronix.de" <m.felsch@...gutronix.de>,
"fugang.duan@....com" <fugang.duan@....com>,
"kuba@...nel.org" <kuba@...nel.org>,
"andrew@...n.ch" <andrew@...n.ch>,
Heiner Kallweit <hkallweit1@...il.com>,
"linux@...linux.org.uk" <linux@...linux.org.uk>,
"p.zabel@...gutronix.de" <p.zabel@...gutronix.de>,
"lgirdwood@...il.com" <lgirdwood@...il.com>,
"broonie@...nel.org" <broonie@...nel.org>,
"robh+dt@...nel.org" <robh+dt@...nel.org>,
"richard.leitner@...data.com" <richard.leitner@...data.com>,
"netdev@...r.kernel.org" <netdev@...r.kernel.org>,
"devicetree@...r.kernel.org" <devicetree@...r.kernel.org>,
"f.fainelli@...il.com" <f.fainelli@...il.com>,
"marex@...x.de" <marex@...x.de>
Subject: Subject: [PATCH v3 net-next 1/4] net:fec: Remove PHY reset in
fec_main.c
PHY reset from the FEC driver is not needed if PHY chip is kept in reset
after PHY driver probe, so remove phy_reset_after_clk_enable() and related
code from fec_main.c.
Signed-off-by: Laurent Badel <laurentbadel@...on.com>
---
drivers/net/ethernet/freescale/fec_main.c | 40 -----------------------
1 file changed, 40 deletions(-)
diff --git a/drivers/net/ethernet/freescale/fec_main.c b/drivers/net/ethernet/freescale/fec_main.c
index 04f24c66cf36..c9401c758364 100644
--- a/drivers/net/ethernet/freescale/fec_main.c
+++ b/drivers/net/ethernet/freescale/fec_main.c
@@ -1911,27 +1911,6 @@ static int fec_enet_mdio_write(struct mii_bus *bus, int mii_id, int regnum,
return ret;
}
-static void fec_enet_phy_reset_after_clk_enable(struct net_device *ndev)
-{
- struct fec_enet_private *fep = netdev_priv(ndev);
- struct phy_device *phy_dev = ndev->phydev;
-
- if (phy_dev) {
- phy_reset_after_clk_enable(phy_dev);
- } else if (fep->phy_node) {
- /*
- * If the PHY still is not bound to the MAC, but there is
- * OF PHY node and a matching PHY device instance already,
- * use the OF PHY node to obtain the PHY device instance,
- * and then use that PHY device instance when triggering
- * the PHY reset.
- */
- phy_dev = of_phy_find_device(fep->phy_node);
- phy_reset_after_clk_enable(phy_dev);
- put_device(&phy_dev->mdio.dev);
- }
-}
-
static int fec_enet_clk_enable(struct net_device *ndev, bool enable)
{
struct fec_enet_private *fep = netdev_priv(ndev);
@@ -1958,7 +1937,6 @@ static int fec_enet_clk_enable(struct net_device *ndev, bool enable)
if (ret)
goto failed_clk_ref;
- fec_enet_phy_reset_after_clk_enable(ndev);
} else {
clk_disable_unprepare(fep->clk_enet_out);
if (fep->clk_ptp) {
@@ -2972,7 +2950,6 @@ fec_enet_open(struct net_device *ndev)
{
struct fec_enet_private *fep = netdev_priv(ndev);
int ret;
- bool reset_again;
ret = pm_runtime_resume_and_get(&fep->pdev->dev);
if (ret < 0)
@@ -2983,17 +2960,6 @@ fec_enet_open(struct net_device *ndev)
if (ret)
goto clk_enable;
- /* During the first fec_enet_open call the PHY isn't probed at this
- * point. Therefore the phy_reset_after_clk_enable() call within
- * fec_enet_clk_enable() fails. As we need this reset in order to be
- * sure the PHY is working correctly we check if we need to reset again
- * later when the PHY is probed
- */
- if (ndev->phydev && ndev->phydev->drv)
- reset_again = false;
- else
- reset_again = true;
-
/* I should reset the ring buffers here, but I don't yet know
* a simple way to do that.
*/
@@ -3005,12 +2971,6 @@ fec_enet_open(struct net_device *ndev)
/* Init MAC prior to mii bus probe */
fec_restart(ndev);
- /* Call phy_reset_after_clk_enable() again if it failed during
- * phy_reset_after_clk_enable() before because the PHY wasn't probed.
- */
- if (reset_again)
- fec_enet_phy_reset_after_clk_enable(ndev);
-
/* Probe and connect to PHY when open the interface */
ret = fec_enet_mii_probe(ndev);
if (ret)
--
2.17.1
-----------------------------
Eaton Industries Manufacturing GmbH ~ Registered place of business: Route de la Longeraie 7, 1110, Morges, Switzerland
-----------------------------
Powered by blists - more mailing lists