From: Bartosz Golaszewski <brgl@bgdev.pl>
To: Andrew Lunn <andrew@lunn.ch>,
Florian Fainelli <f.fainelli@gmail.com>,
Heiner Kallweit <hkallweit1@gmail.com>,
Russell King <linux@armlinux.org.uk>,
"David S . Miller" <davem@davemloft.net>,
Jakub Kicinski <kuba@kernel.org>,
Rob Herring <robh+dt@kernel.org>,
Matthias Brugger <matthias.bgg@gmail.com>,
Microchip Linux Driver Support <UNGLinuxDriver@microchip.com>,
Vladimir Oltean <vladimir.oltean@nxp.com>,
Claudiu Manoil <claudiu.manoil@nxp.com>,
Alexandre Belloni <alexandre.belloni@bootlin.com>,
Vivien Didelot <vivien.didelot@gmail.com>,
Tom Lendacky <thomas.lendacky@amd.com>,
Yisen Zhuang <yisen.zhuang@huawei.com>,
Salil Mehta <salil.mehta@huawei.com>,
Jassi Brar <jaswinder.singh@linaro.org>,
Ilias Apalodimas <ilias.apalodimas@linaro.org>,
Iyappan Subramanian <iyappan@os.amperecomputing.com>,
Keyur Chudgar <keyur@os.amperecomputing.com>,
Quan Nguyen <quan@os.amperecomputing.com>,
Frank Rowand <frowand.list@gmail.com>,
Philipp Zabel <p.zabel@pengutronix.de>,
Liam Girdwood <lgirdwood@gmail.com>,
Mark Brown <broonie@kernel.org>
Cc: netdev@vger.kernel.org, devicetree@vger.kernel.org,
linux-kernel@vger.kernel.org,
linux-arm-kernel@lists.infradead.org,
linux-mediatek@lists.infradead.org,
Fabien Parent <fparent@baylibre.com>,
Stephane Le Provost <stephane.leprovost@mediatek.com>,
Pedro Tsai <pedro.tsai@mediatek.com>,
Andrew Perepech <andrew.perepech@mediatek.com>,
Bartosz Golaszewski <bgolaszewski@baylibre.com>
Subject: [PATCH 05/15] net: phy: reset the PHY even if probe() is not implemented
Date: Mon, 22 Jun 2020 11:37:34 +0200 [thread overview]
Message-ID: <20200622093744.13685-6-brgl@bgdev.pl> (raw)
In-Reply-To: <20200622093744.13685-1-brgl@bgdev.pl>
From: Bartosz Golaszewski <bgolaszewski@baylibre.com>
Currently we only call phy_device_reset() if the PHY driver implements
the probe() callback. This is not mandatory and many drivers (e.g.
realtek) don't need probe() for most devices but still can have reset
GPIOs defined. There's no reason to depend on the presence of probe()
here so pull the reset code out of the if clause.
Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
---
drivers/net/phy/phy_device.c | 23 ++++++++++++-----------
1 file changed, 12 insertions(+), 11 deletions(-)
diff --git a/drivers/net/phy/phy_device.c b/drivers/net/phy/phy_device.c
index 1b4df12c70ad..f6985db08340 100644
--- a/drivers/net/phy/phy_device.c
+++ b/drivers/net/phy/phy_device.c
@@ -2690,16 +2690,13 @@ static int phy_probe(struct device *dev)
mutex_lock(&phydev->lock);
- if (phydev->drv->probe) {
- /* Deassert the reset signal */
- phy_device_reset(phydev, 0);
+ /* Deassert the reset signal */
+ phy_device_reset(phydev, 0);
+ if (phydev->drv->probe) {
err = phydev->drv->probe(phydev);
- if (err) {
- /* Assert the reset signal */
- phy_device_reset(phydev, 1);
+ if (err)
goto out;
- }
}
/* Start out supporting everything. Eventually,
@@ -2761,6 +2758,10 @@ static int phy_probe(struct device *dev)
phydev->state = PHY_READY;
out:
+ /* Assert the reset signal */
+ if (err)
+ phy_device_reset(phydev, 1);
+
mutex_unlock(&phydev->lock);
return err;
@@ -2779,12 +2780,12 @@ static int phy_remove(struct device *dev)
sfp_bus_del_upstream(phydev->sfp_bus);
phydev->sfp_bus = NULL;
- if (phydev->drv && phydev->drv->remove) {
+ if (phydev->drv && phydev->drv->remove)
phydev->drv->remove(phydev);
- /* Assert the reset signal */
- phy_device_reset(phydev, 1);
- }
+ /* Assert the reset signal */
+ phy_device_reset(phydev, 1);
+
phydev->drv = NULL;
return 0;
--
2.26.1
next prev parent reply other threads:[~2020-06-22 9:43 UTC|newest]
Thread overview: 49+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-06-22 9:37 [PATCH 00/15] net: phy: correctly model the PHY voltage supply in DT Bartosz Golaszewski
2020-06-22 9:37 ` [PATCH 01/15] net: phy: arrange headers in mdio_bus.c alphabetically Bartosz Golaszewski
2020-06-22 13:12 ` Andrew Lunn
2020-06-23 18:54 ` Florian Fainelli
2020-06-22 9:37 ` [PATCH 02/15] net: phy: arrange headers in mdio_device.c alphabetically Bartosz Golaszewski
2020-06-22 13:12 ` Andrew Lunn
2020-06-23 18:56 ` Florian Fainelli
2020-06-22 9:37 ` [PATCH 03/15] net: phy: arrange headers in phy_device.c alphabetically Bartosz Golaszewski
2020-06-22 13:12 ` Andrew Lunn
2020-06-23 18:57 ` Florian Fainelli
2020-06-22 9:37 ` [PATCH 04/15] net: mdio: add a forward declaration for reset_control to mdio.h Bartosz Golaszewski
2020-06-22 13:13 ` Andrew Lunn
2020-06-23 18:59 ` Florian Fainelli
2020-06-22 9:37 ` Bartosz Golaszewski [this message]
2020-06-22 13:16 ` [PATCH 05/15] net: phy: reset the PHY even if probe() is not implemented Andrew Lunn
2020-06-23 19:14 ` Florian Fainelli
2020-06-24 16:22 ` Bartosz Golaszewski
2020-06-22 9:37 ` [PATCH 06/15] net: phy: mdio: reset MDIO devices " Bartosz Golaszewski
2020-06-22 13:18 ` Andrew Lunn
2020-06-23 19:16 ` Florian Fainelli
2020-06-22 9:37 ` [PATCH 07/15] net: phy: split out the PHY driver request out of phy_device_create() Bartosz Golaszewski
2020-06-22 9:37 ` [PATCH 08/15] net: phy: check the PHY presence in get_phy_id() Bartosz Golaszewski
2020-06-22 9:37 ` [PATCH 09/15] net: phy: delay PHY driver probe until PHY registration Bartosz Golaszewski
2020-06-22 13:39 ` Andrew Lunn
2020-06-22 13:51 ` Mark Brown
2020-06-23 19:49 ` Florian Fainelli
2020-06-24 9:43 ` Mark Brown
2020-06-24 13:48 ` Bartosz Golaszewski
2020-06-24 16:06 ` Florian Fainelli
2020-06-24 16:35 ` Bartosz Golaszewski
2020-06-24 16:50 ` Russell King - ARM Linux admin
2020-06-24 18:59 ` Robin Murphy
2020-06-22 9:37 ` [PATCH 10/15] net: phy: simplify phy_device_create() Bartosz Golaszewski
2020-06-22 9:37 ` [PATCH 11/15] net: phy: drop get_phy_device() Bartosz Golaszewski
2020-06-22 9:37 ` [PATCH 12/15] dt-bindings: mdio: add phy-supply property to ethernet phy node Bartosz Golaszewski
2020-06-23 19:39 ` Florian Fainelli
2020-06-22 9:37 ` [PATCH 13/15] net: phy: mdio: add support for PHY supply regulator Bartosz Golaszewski
2020-06-22 13:25 ` Russell King - ARM Linux admin
2020-06-23 9:30 ` Bartosz Golaszewski
2020-06-22 9:37 ` [PATCH 14/15] net: phy: add PHY regulator support Bartosz Golaszewski
2020-06-22 13:29 ` Russell King - ARM Linux admin
2020-06-23 9:41 ` Bartosz Golaszewski
2020-06-23 9:42 ` Russell King - ARM Linux admin
2020-06-23 9:46 ` Bartosz Golaszewski
2020-06-23 9:56 ` Russell King - ARM Linux admin
2020-06-23 16:27 ` Bartosz Golaszewski
2020-06-24 16:57 ` Russell King - ARM Linux admin
2020-06-24 18:12 ` Russell King - ARM Linux admin
2020-06-22 9:37 ` [PATCH 15/15] ARM64: dts: mediatek: add a phy regulator to pumpkin-common.dtsi Bartosz Golaszewski
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20200622093744.13685-6-brgl@bgdev.pl \
--to=brgl@bgdev.pl \
--cc=UNGLinuxDriver@microchip.com \
--cc=alexandre.belloni@bootlin.com \
--cc=andrew.perepech@mediatek.com \
--cc=andrew@lunn.ch \
--cc=bgolaszewski@baylibre.com \
--cc=broonie@kernel.org \
--cc=claudiu.manoil@nxp.com \
--cc=davem@davemloft.net \
--cc=devicetree@vger.kernel.org \
--cc=f.fainelli@gmail.com \
--cc=fparent@baylibre.com \
--cc=frowand.list@gmail.com \
--cc=hkallweit1@gmail.com \
--cc=ilias.apalodimas@linaro.org \
--cc=iyappan@os.amperecomputing.com \
--cc=jaswinder.singh@linaro.org \
--cc=keyur@os.amperecomputing.com \
--cc=kuba@kernel.org \
--cc=lgirdwood@gmail.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mediatek@lists.infradead.org \
--cc=linux@armlinux.org.uk \
--cc=matthias.bgg@gmail.com \
--cc=netdev@vger.kernel.org \
--cc=p.zabel@pengutronix.de \
--cc=pedro.tsai@mediatek.com \
--cc=quan@os.amperecomputing.com \
--cc=robh+dt@kernel.org \
--cc=salil.mehta@huawei.com \
--cc=stephane.leprovost@mediatek.com \
--cc=thomas.lendacky@amd.com \
--cc=vivien.didelot@gmail.com \
--cc=vladimir.oltean@nxp.com \
--cc=yisen.zhuang@huawei.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).