All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 1/2] net: fec: Don't use disabled phys
@ 2021-04-15 17:06 Sean Anderson
  2021-04-15 17:06 ` [PATCH v2 2/2] net: fec: Only unregister MII bus if we registered it Sean Anderson
  2021-05-02 11:42 ` [PATCH v2 1/2] net: fec: Don't use disabled phys stefano.babic at babic.homelinux.org
  0 siblings, 2 replies; 4+ messages in thread
From: Sean Anderson @ 2021-04-15 17:06 UTC (permalink / raw)
  To: u-boot

If a phy is disabled, don't use it. This matches Linux's behavior.

Signed-off-by: Sean Anderson <sean.anderson@seco.com>
Reviewed-by: Ramon Fried <rfried.dev@gmail.com>
---

Changes in v2:
- Fix debug statement missing a parameter.
- Assign phy_of_node only after we determine if the node is available.

 drivers/net/fec_mxc.c | 15 +++++++++------
 1 file changed, 9 insertions(+), 6 deletions(-)

diff --git a/drivers/net/fec_mxc.c b/drivers/net/fec_mxc.c
index ec21157d71..59f5a14e54 100644
--- a/drivers/net/fec_mxc.c
+++ b/drivers/net/fec_mxc.c
@@ -1299,16 +1299,19 @@ static const struct eth_ops fecmxc_ops = {
 static int device_get_phy_addr(struct fec_priv *priv, struct udevice *dev)
 {
 	struct ofnode_phandle_args phandle_args;
-	int reg;
+	int reg, ret;
 
-	if (dev_read_phandle_with_args(dev, "phy-handle", NULL, 0, 0,
-				       &phandle_args)) {
-		debug("Failed to find phy-handle");
-		return -ENODEV;
+	ret = dev_read_phandle_with_args(dev, "phy-handle", NULL, 0, 0,
+					 &phandle_args);
+	if (ret) {
+		debug("Failed to find phy-handle (err = %d\n)", ret);
+		return ret;
 	}
 
-	priv->phy_of_node = phandle_args.node;
+	if (!ofnode_is_available(phandle_args.node))
+		return -ENOENT;
 
+	priv->phy_of_node = phandle_args.node;
 	reg = ofnode_read_u32_default(phandle_args.node, "reg", 0);
 
 	return reg;
-- 
2.25.1

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [PATCH v2 2/2] net: fec: Only unregister MII bus if we registered it
  2021-04-15 17:06 [PATCH v2 1/2] net: fec: Don't use disabled phys Sean Anderson
@ 2021-04-15 17:06 ` Sean Anderson
  2021-05-02 11:42   ` stefano.babic at babic.homelinux.org
  2021-05-02 11:42 ` [PATCH v2 1/2] net: fec: Don't use disabled phys stefano.babic at babic.homelinux.org
  1 sibling, 1 reply; 4+ messages in thread
From: Sean Anderson @ 2021-04-15 17:06 UTC (permalink / raw)
  To: u-boot

If we fail to probe for whatever reason, we cannot unregister/free the
MII bus unless we registered it with fec_get_miibus. This fixes FECs
sharing an MDIO bus from destroying it, preventing the other FEC from
using it.

Fixes: 6a895d039b ("net: Update eQos driver and FEC driver to use eth phy interfaces")
Signed-off-by: Sean Anderson <sean.anderson@seco.com>
Reviewed-by: Ramon Fried <rfried.dev@gmail.com>

---

(no changes since v1)

 drivers/net/fec_mxc.c | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/drivers/net/fec_mxc.c b/drivers/net/fec_mxc.c
index 59f5a14e54..4fd5c01b4a 100644
--- a/drivers/net/fec_mxc.c
+++ b/drivers/net/fec_mxc.c
@@ -1355,6 +1355,7 @@ static void fec_gpio_reset(struct fec_priv *priv)
 
 static int fecmxc_probe(struct udevice *dev)
 {
+	bool dm_mii_bus = true;
 	struct eth_pdata *pdata = dev_get_plat(dev);
 	struct fec_priv *priv = dev_get_priv(dev);
 	struct mii_dev *bus = NULL;
@@ -1462,6 +1463,7 @@ static int fecmxc_probe(struct udevice *dev)
 #endif
 
 	if (!bus) {
+		dm_mii_bus = false;
 #ifdef CONFIG_FEC_MXC_MDIO_BASE
 		bus = fec_get_miibus((ulong)CONFIG_FEC_MXC_MDIO_BASE,
 				     dev_seq(dev));
@@ -1507,8 +1509,10 @@ static int fecmxc_probe(struct udevice *dev)
 	return 0;
 
 err_phy:
-	mdio_unregister(bus);
-	free(bus);
+	if (!dm_mii_bus) {
+		mdio_unregister(bus);
+		free(bus);
+	}
 err_mii:
 err_timeout:
 	fec_free_descs(priv);
-- 
2.25.1

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [PATCH v2 1/2] net: fec: Don't use disabled phys
  2021-04-15 17:06 [PATCH v2 1/2] net: fec: Don't use disabled phys Sean Anderson
  2021-04-15 17:06 ` [PATCH v2 2/2] net: fec: Only unregister MII bus if we registered it Sean Anderson
@ 2021-05-02 11:42 ` stefano.babic at babic.homelinux.org
  1 sibling, 0 replies; 4+ messages in thread
From: stefano.babic at babic.homelinux.org @ 2021-05-02 11:42 UTC (permalink / raw)
  To: u-boot

> If a phy is disabled, don't use it. This matches Linux's behavior.
> Signed-off-by: Sean Anderson <sean.anderson@seco.com>
> Reviewed-by: Ramon Fried <rfried.dev@gmail.com>
Applied to u-boot-imx, master, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sbabic at denx.de
=====================================================================

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [PATCH v2 2/2] net: fec: Only unregister MII bus if we registered it
  2021-04-15 17:06 ` [PATCH v2 2/2] net: fec: Only unregister MII bus if we registered it Sean Anderson
@ 2021-05-02 11:42   ` stefano.babic at babic.homelinux.org
  0 siblings, 0 replies; 4+ messages in thread
From: stefano.babic at babic.homelinux.org @ 2021-05-02 11:42 UTC (permalink / raw)
  To: u-boot

> If we fail to probe for whatever reason, we cannot unregister/free the
> MII bus unless we registered it with fec_get_miibus. This fixes FECs
> sharing an MDIO bus from destroying it, preventing the other FEC from
> using it.
> Fixes: 6a895d039b ("net: Update eQos driver and FEC driver to use eth phy interfaces")
> Signed-off-by: Sean Anderson <sean.anderson@seco.com>
> Reviewed-by: Ramon Fried <rfried.dev@gmail.com>
Applied to u-boot-imx, master, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sbabic at denx.de
=====================================================================

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2021-05-02 11:42 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-04-15 17:06 [PATCH v2 1/2] net: fec: Don't use disabled phys Sean Anderson
2021-04-15 17:06 ` [PATCH v2 2/2] net: fec: Only unregister MII bus if we registered it Sean Anderson
2021-05-02 11:42   ` stefano.babic at babic.homelinux.org
2021-05-02 11:42 ` [PATCH v2 1/2] net: fec: Don't use disabled phys stefano.babic at babic.homelinux.org

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.