Thread (13 messages) 13 messages, 6 authors, 2021-05-25

Re: linux-next: Tree for May 18 (drivers/net/dsa/qca8k.c)

From: Vladimir Oltean <olteanv@gmail.com>
Date: 2021-05-18 16:44:01
Also in: lkml, netdev
Subsystem: ethernet phy library, open firmware and flattened device tree, the rest · Maintainers: Andrew Lunn, Heiner Kallweit, Rob Herring, Saravana Kannan, Linus Torvalds

Hi Randy,

On Tue, May 18, 2021 at 09:32:49AM -0700, Randy Dunlap wrote:
On 5/18/21 2:27 AM, Stephen Rothwell wrote:
quoted
Hi all,

Changes since 20210514:
on x86_64:
# CONFIG_OF is not set

../drivers/net/dsa/qca8k.c: In function ‘qca8k_mdio_register’:
../drivers/net/dsa/qca8k.c:797:9: error: implicit declaration of function ‘devm_of_mdiobus_register’; did you mean ‘devm_mdiobus_register’? [-Werror=implicit-function-declaration]
  return devm_of_mdiobus_register(priv->dev, bus, mdio);


Should there be a stub for this function in <linux/of_mdio.h>?
or the driver could add a dependency on OF_MDIO.

Full randconfig file is attached.

-- 
~Randy
Reported-by: Randy Dunlap <redacted>
Would something like this work?

-----------------------------[ cut here ]-----------------------------
From 36c0b3f04ebfa51e52bd1bc2dc447d12d1c6e119 Mon Sep 17 00:00:00 2001
From: Vladimir Oltean <olteanv@gmail.com>
Date: Tue, 18 May 2021 19:39:18 +0300
Subject: [PATCH] net: mdio: provide shim implementation of
 devm_of_mdiobus_register

Similar to the way in which of_mdiobus_register() has a fallback to the
non-DT based mdiobus_register() when CONFIG_OF is not set, we can create
a shim for the device-managed devm_of_mdiobus_register() which calls
devm_mdiobus_register() and discards the struct device_node *.

In particular, this solves a build issue with the qca8k DSA driver which
uses devm_of_mdiobus_register and can be compiled without CONFIG_OF.

Reported-by: Randy Dunlap <redacted>
Signed-off-by: Vladimir Oltean <olteanv@gmail.com>
---
 include/linux/of_mdio.h | 7 +++++++
 1 file changed, 7 insertions(+)
diff --git a/include/linux/of_mdio.h b/include/linux/of_mdio.h
index 2b05e7f7c238..da633d34ab86 100644
--- a/include/linux/of_mdio.h
+++ b/include/linux/of_mdio.h
@@ -72,6 +72,13 @@ static inline int of_mdiobus_register(struct mii_bus *mdio, struct device_node *
 	return mdiobus_register(mdio);
 }
 
+static inline int devm_of_mdiobus_register(struct device *dev,
+					   struct mii_bus *mdio,
+					   struct device_node *np)
+{
+	return devm_mdiobus_register(dev, mdio);
+}
+
 static inline struct mdio_device *of_mdio_find_device(struct device_node *np)
 {
 	return NULL;
-----------------------------[ cut here ]-----------------------------
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help