From: Heiner Kallweit <hkallweit1@gmail.com>
To: Siddharth Vadapalli <s-vadapalli@ti.com>,
Roger Quadros <rogerq@kernel.org>,
Andrew Lunn <andrew+netdev@lunn.ch>,
Paolo Abeni <pabeni@redhat.com>,
Eric Dumazet <edumazet@google.com>,
Jakub Kicinski <kuba@kernel.org>,
David Miller <davem@davemloft.net>
Cc: linux-omap@vger.kernel.org,
"netdev@vger.kernel.org" <netdev@vger.kernel.org>
Subject: [PATCH net-next] net: ti: davinci_emac: stop using bus type mdio_bus_type
Date: Fri, 27 Feb 2026 21:52:16 +0100 [thread overview]
Message-ID: <cc8e83aa-48c3-4497-b6ad-760a7f9e25dc@gmail.com> (raw)
This driver is the only user of mdio_bus_type outside phylib.
Using mdio_bus_type isn't strictly needed here, so use an alternative
approach. This will allow to make mdio_bus_type private to phylib
in a follow-up series.
Compile-tested only.
Note: Devices supported by this driver are OF-only, therefore the string
comparison in match_first_device() isn't needed any longer.
Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
---
drivers/net/ethernet/ti/davinci_emac.c | 39 ++++++++++----------------
1 file changed, 15 insertions(+), 24 deletions(-)
diff --git a/drivers/net/ethernet/ti/davinci_emac.c b/drivers/net/ethernet/ti/davinci_emac.c
index 22d14fa5fe3..052ecd83f80 100644
--- a/drivers/net/ethernet/ti/davinci_emac.c
+++ b/drivers/net/ethernet/ti/davinci_emac.c
@@ -1389,15 +1389,6 @@ static int emac_devioctl(struct net_device *ndev, struct ifreq *ifrq, int cmd)
return -EOPNOTSUPP;
}
-static int match_first_device(struct device *dev, const void *data)
-{
- if (dev->parent && dev->parent->of_node)
- return of_device_is_compatible(dev->parent->of_node,
- "ti,davinci_mdio");
-
- return !strncmp(dev_name(dev), "davinci_mdio", 12);
-}
-
/**
* emac_dev_open - EMAC device open
* @ndev: The DaVinci EMAC network adapter
@@ -1417,7 +1408,6 @@ static int emac_dev_open(struct net_device *ndev)
int i = 0;
struct emac_priv *priv = netdev_priv(ndev);
struct phy_device *phydev = NULL;
- struct device *phy = NULL;
ret = pm_runtime_resume_and_get(&priv->pdev->dev);
if (ret < 0) {
@@ -1502,20 +1492,22 @@ static int emac_dev_open(struct net_device *ndev)
}
}
- /* use the first phy on the bus if pdata did not give us a phy id */
+ /* if no phy-handle and no fixed link, use the first phy on the bus */
if (!phydev && !priv->phy_id) {
- /* NOTE: we can't use bus_find_device_by_name() here because
- * the device name is not guaranteed to be 'davinci_mdio'. On
- * some systems it can be 'davinci_mdio.0' so we need to use
- * strncmp() against the first part of the string to correctly
- * match it.
- */
- phy = bus_find_device(&mdio_bus_type, NULL, NULL,
- match_first_device);
- if (phy) {
- priv->phy_id = dev_name(phy);
- if (!priv->phy_id || !*priv->phy_id)
- put_device(phy);
+ struct device_node *np;
+
+ np = of_find_compatible_node(NULL, NULL, "ti,davinci_mdio");
+ if (np) {
+ struct mii_bus *bus = of_mdio_find_bus(np);
+
+ if (bus) {
+ struct phy_device *phy = phy_find_first(bus);
+
+ if (phy)
+ priv->phy_id = phydev_name(phy);
+ put_device(&bus->dev); /* of_mdio_find_bus */
+ }
+ of_node_put(np); /* of_find_compatible_node */
}
}
@@ -1523,7 +1515,6 @@ static int emac_dev_open(struct net_device *ndev)
phydev = phy_connect(ndev, priv->phy_id,
&emac_adjust_link,
PHY_INTERFACE_MODE_MII);
- put_device(phy); /* reference taken by bus_find_device */
if (IS_ERR(phydev)) {
dev_err(emac_dev, "could not connect to phy %s\n",
priv->phy_id);
--
2.53.0
next reply other threads:[~2026-02-27 20:52 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-02-27 20:52 Heiner Kallweit [this message]
2026-03-03 12:20 ` [PATCH net-next] net: ti: davinci_emac: stop using bus type mdio_bus_type patchwork-bot+netdevbpf
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=cc8e83aa-48c3-4497-b6ad-760a7f9e25dc@gmail.com \
--to=hkallweit1@gmail.com \
--cc=andrew+netdev@lunn.ch \
--cc=davem@davemloft.net \
--cc=edumazet@google.com \
--cc=kuba@kernel.org \
--cc=linux-omap@vger.kernel.org \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
--cc=rogerq@kernel.org \
--cc=s-vadapalli@ti.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