Thread (7 messages) flat view 7 messages, 5 authors, 2015-11-19

Re: [PATCH] phylib: Make PHYs children of their MDIO bus, not the bus' parent.

From: Andrew Lunn <andrew@lunn.ch>
Date: 2015-11-19 21:06:56
Also in: lkml

On Thu, Nov 19, 2015 at 11:51:37PM +0300, Sergei Shtylyov wrote:
Hello.

On 08/22/2015 02:16 AM, David Daney wrote:
quoted
From: David Daney <redacted>

commit 18ee49ddb0d2 ("phylib: rename mii_bus::dev to mii_bus::parent")
changed the parent of PHY devices from the bus to the bus parent.

Then, commit 4dea547fef1b ("phylib: rework to prepare for OF
registration of PHYs") moved the code into phy_device.c

At this point, it is somewhat unclear why the change was seen as
necessary.  But, when we look at the device model tree in
/sys/devices, it is clearly incorrect.  The PHYs should be children of
their MDIO bus.

Change the PHY's parent device to be the MDIO bus device.

Cc: Lennert Buytenhek <redacted>
Cc: Grant Likely <redacted>
Signed-off-by: David Daney <redacted>
---
 drivers/net/phy/phy_device.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/net/phy/phy_device.c b/drivers/net/phy/phy_device.c
index 0302483..55f0178 100644
--- a/drivers/net/phy/phy_device.c
+++ b/drivers/net/phy/phy_device.c
@@ -176,7 +176,7 @@ struct phy_device *phy_device_create(struct mii_bus *bus, int addr, int phy_id,
 	if (c45_ids)
 		dev->c45_ids = *c45_ids;
 	dev->bus = bus;
-	dev->dev.parent = bus->parent;
+	dev->dev.parent = &bus->dev;
 	dev->dev.bus = &mdio_bus_type;
 	dev->irq = bus->irq != NULL ? bus->irq[addr] : PHY_POLL;
 	dev_set_name(&dev->dev, PHY_ID_FMT, bus->id, addr);
   This patch makes my sh_eth driver fail to connect to PHY usinjg
of_phy_connect(). (The ravb driver fails too but for some other
reason.)
 
Hi Sergei

What phy is it?

Do you have phy DT properties in the MAC node?

   Andrew
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help