Commit a31fcbce authored by David S. Miller's avatar David S. Miller

Merge branch 'mdio-nodes'

Ioana Ciornei says:

====================
net: mdio: setup both fwnode and of_node

The first patch in this series fixes a bug introduced by mistake in the
previous ACPI MDIO patch set.

The next two patches are adding a new helper which takes a device and a
fwnode_handle and populates both the of_node and fwnode so that we make
sure that a bug like this does not happen anymore.
Also, the new helper is used in the MDIO area.
====================
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parents b67fda9a 7e33d84d
...@@ -4723,6 +4723,13 @@ void device_set_of_node_from_dev(struct device *dev, const struct device *dev2) ...@@ -4723,6 +4723,13 @@ void device_set_of_node_from_dev(struct device *dev, const struct device *dev2)
} }
EXPORT_SYMBOL_GPL(device_set_of_node_from_dev); EXPORT_SYMBOL_GPL(device_set_of_node_from_dev);
void device_set_node(struct device *dev, struct fwnode_handle *fwnode)
{
dev->fwnode = fwnode;
dev->of_node = to_of_node(fwnode);
}
EXPORT_SYMBOL_GPL(device_set_node);
int device_match_name(struct device *dev, const void *name) int device_match_name(struct device *dev, const void *name)
{ {
return sysfs_streq(dev_name(dev), name); return sysfs_streq(dev_name(dev), name);
......
...@@ -65,7 +65,7 @@ int fwnode_mdiobus_phy_device_register(struct mii_bus *mdio, ...@@ -65,7 +65,7 @@ int fwnode_mdiobus_phy_device_register(struct mii_bus *mdio,
* can be looked up later * can be looked up later
*/ */
fwnode_handle_get(child); fwnode_handle_get(child);
phy->mdio.dev.fwnode = child; device_set_node(&phy->mdio.dev, child);
/* All data is now stored in the phy struct; /* All data is now stored in the phy struct;
* register it * register it
......
...@@ -51,6 +51,7 @@ static int of_mdiobus_register_phy(struct mii_bus *mdio, ...@@ -51,6 +51,7 @@ static int of_mdiobus_register_phy(struct mii_bus *mdio,
static int of_mdiobus_register_device(struct mii_bus *mdio, static int of_mdiobus_register_device(struct mii_bus *mdio,
struct device_node *child, u32 addr) struct device_node *child, u32 addr)
{ {
struct fwnode_handle *fwnode = of_fwnode_handle(child);
struct mdio_device *mdiodev; struct mdio_device *mdiodev;
int rc; int rc;
...@@ -61,9 +62,8 @@ static int of_mdiobus_register_device(struct mii_bus *mdio, ...@@ -61,9 +62,8 @@ static int of_mdiobus_register_device(struct mii_bus *mdio,
/* Associate the OF node with the device structure so it /* Associate the OF node with the device structure so it
* can be looked up later. * can be looked up later.
*/ */
of_node_get(child); fwnode_handle_get(fwnode);
mdiodev->dev.of_node = child; device_set_node(&mdiodev->dev, fwnode);
mdiodev->dev.fwnode = of_fwnode_handle(child);
/* All data is now stored in the mdiodev struct; register it. */ /* All data is now stored in the mdiodev struct; register it. */
rc = mdio_device_register(mdiodev); rc = mdio_device_register(mdiodev);
...@@ -162,8 +162,7 @@ int of_mdiobus_register(struct mii_bus *mdio, struct device_node *np) ...@@ -162,8 +162,7 @@ int of_mdiobus_register(struct mii_bus *mdio, struct device_node *np)
* the device tree are populated after the bus has been registered */ * the device tree are populated after the bus has been registered */
mdio->phy_mask = ~0; mdio->phy_mask = ~0;
mdio->dev.of_node = np; device_set_node(&mdio->dev, of_fwnode_handle(np));
mdio->dev.fwnode = of_fwnode_handle(np);
/* Get bus level PHY reset GPIO details */ /* Get bus level PHY reset GPIO details */
mdio->reset_delay_us = DEFAULT_GPIO_RESET_DELAY; mdio->reset_delay_us = DEFAULT_GPIO_RESET_DELAY;
......
...@@ -459,8 +459,7 @@ static void of_mdiobus_link_mdiodev(struct mii_bus *bus, ...@@ -459,8 +459,7 @@ static void of_mdiobus_link_mdiodev(struct mii_bus *bus,
continue; continue;
if (addr == mdiodev->addr) { if (addr == mdiodev->addr) {
dev->of_node = child; device_set_node(dev, of_fwnode_handle(child));
dev->fwnode = of_fwnode_handle(child);
return; return;
} }
} }
......
...@@ -819,6 +819,7 @@ int device_online(struct device *dev); ...@@ -819,6 +819,7 @@ int device_online(struct device *dev);
void set_primary_fwnode(struct device *dev, struct fwnode_handle *fwnode); void set_primary_fwnode(struct device *dev, struct fwnode_handle *fwnode);
void set_secondary_fwnode(struct device *dev, struct fwnode_handle *fwnode); void set_secondary_fwnode(struct device *dev, struct fwnode_handle *fwnode);
void device_set_of_node_from_dev(struct device *dev, const struct device *dev2); void device_set_of_node_from_dev(struct device *dev, const struct device *dev2);
void device_set_node(struct device *dev, struct fwnode_handle *fwnode);
static inline int dev_num_vf(struct device *dev) static inline int dev_num_vf(struct device *dev)
{ {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment