linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] phylib: Make PHYs children of their MDIO bus, not the bus' parent.
@ 2015-08-21 23:16 David Daney
  2015-08-21 23:59 ` Florian Fainelli
                   ` (2 more replies)
  0 siblings, 3 replies; 7+ messages in thread
From: David Daney @ 2015-08-21 23:16 UTC (permalink / raw)
  To: netdev, David S. Miller, linux-kernel, Florian Fainelli
  Cc: David Daney, Lennert Buytenhek, Grant Likely

From: David Daney <david.daney@cavium.com>

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 <buytenh@wantstofly.org>
Cc: Grant Likely <grant.likely@secretlab.ca>
Signed-off-by: David Daney <david.daney@cavium.com>
---
 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);
-- 
1.7.11.7


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

* Re: [PATCH] phylib: Make PHYs children of their MDIO bus, not the bus' parent.
  2015-08-21 23:16 [PATCH] phylib: Make PHYs children of their MDIO bus, not the bus' parent David Daney
@ 2015-08-21 23:59 ` Florian Fainelli
  2015-08-25 18:31 ` David Miller
  2015-11-19 20:51 ` Sergei Shtylyov
  2 siblings, 0 replies; 7+ messages in thread
From: Florian Fainelli @ 2015-08-21 23:59 UTC (permalink / raw)
  To: David Daney, netdev, David S. Miller, linux-kernel
  Cc: David Daney, Lennert Buytenhek, Grant Likely

On 21/08/15 16:16, David Daney wrote:
> From: David Daney <david.daney@cavium.com>
> 
> 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 <buytenh@wantstofly.org>
> Cc: Grant Likely <grant.likely@secretlab.ca>
> Signed-off-by: David Daney <david.daney@cavium.com>

Acked-by: Florian Fainelli <f.fainelli@gmail.com>
-- 
Florian

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

* Re: [PATCH] phylib: Make PHYs children of their MDIO bus, not the bus' parent.
  2015-08-21 23:16 [PATCH] phylib: Make PHYs children of their MDIO bus, not the bus' parent David Daney
  2015-08-21 23:59 ` Florian Fainelli
@ 2015-08-25 18:31 ` David Miller
  2015-11-19 20:51 ` Sergei Shtylyov
  2 siblings, 0 replies; 7+ messages in thread
From: David Miller @ 2015-08-25 18:31 UTC (permalink / raw)
  To: ddaney.cavm
  Cc: netdev, linux-kernel, f.fainelli, david.daney, buytenh, grant.likely

From: David Daney <ddaney.cavm@gmail.com>
Date: Fri, 21 Aug 2015 16:16:03 -0700

> From: David Daney <david.daney@cavium.com>
> 
> 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 <buytenh@wantstofly.org>
> Cc: Grant Likely <grant.likely@secretlab.ca>
> Signed-off-by: David Daney <david.daney@cavium.com>

Applied, thanks.

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

* Re: [PATCH] phylib: Make PHYs children of their MDIO bus, not the bus' parent.
  2015-08-21 23:16 [PATCH] phylib: Make PHYs children of their MDIO bus, not the bus' parent David Daney
  2015-08-21 23:59 ` Florian Fainelli
  2015-08-25 18:31 ` David Miller
@ 2015-11-19 20:51 ` Sergei Shtylyov
  2015-11-19 21:06   ` Andrew Lunn
  2 siblings, 1 reply; 7+ messages in thread
From: Sergei Shtylyov @ 2015-11-19 20:51 UTC (permalink / raw)
  To: David Daney, netdev, David S. Miller, linux-kernel, Florian Fainelli
  Cc: David Daney, Lennert Buytenhek, Grant Likely

Hello.

On 08/22/2015 02:16 AM, David Daney wrote:

> From: David Daney <david.daney@cavium.com>
>
> 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 <buytenh@wantstofly.org>
> Cc: Grant Likely <grant.likely@secretlab.ca>
> Signed-off-by: David Daney <david.daney@cavium.com>
> ---
>   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.)

MBR, Sergei


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

* Re: [PATCH] phylib: Make PHYs children of their MDIO bus, not the bus' parent.
  2015-11-19 20:51 ` Sergei Shtylyov
@ 2015-11-19 21:06   ` Andrew Lunn
  2015-11-19 21:33     ` Sergei Shtylyov
  0 siblings, 1 reply; 7+ messages in thread
From: Andrew Lunn @ 2015-11-19 21:06 UTC (permalink / raw)
  To: Sergei Shtylyov
  Cc: David Daney, netdev, David S. Miller, linux-kernel,
	Florian Fainelli, David Daney, Lennert Buytenhek, Grant Likely

On Thu, Nov 19, 2015 at 11:51:37PM +0300, Sergei Shtylyov wrote:
> Hello.
> 
> On 08/22/2015 02:16 AM, David Daney wrote:
> 
> >From: David Daney <david.daney@cavium.com>
> >
> >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 <buytenh@wantstofly.org>
> >Cc: Grant Likely <grant.likely@secretlab.ca>
> >Signed-off-by: David Daney <david.daney@cavium.com>
> >---
> >  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

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

* Re: [PATCH] phylib: Make PHYs children of their MDIO bus, not the bus' parent.
  2015-11-19 21:06   ` Andrew Lunn
@ 2015-11-19 21:33     ` Sergei Shtylyov
  2015-11-19 23:04       ` Andrew Lunn
  0 siblings, 1 reply; 7+ messages in thread
From: Sergei Shtylyov @ 2015-11-19 21:33 UTC (permalink / raw)
  To: Andrew Lunn
  Cc: David Daney, netdev, David S. Miller, linux-kernel,
	Florian Fainelli, David Daney, Lennert Buytenhek, Grant Likely

Hello.

On 11/20/2015 12:06 AM, Andrew Lunn wrote:

>>> From: David Daney <david.daney@cavium.com>
>>>
>>> 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 <buytenh@wantstofly.org>
>>> Cc: Grant Likely <grant.likely@secretlab.ca>
>>> Signed-off-by: David Daney <david.daney@cavium.com>
>>> ---
>>>   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?

    Micrel KSZ8041RNLI for sh_eth, KSZ9031 for ravb.

> Do you have phy DT properties in the MAC node?

    I have PHY subnodes (with props) in the MAC node.

>     Andrew

MBR, Sergei


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

* Re: [PATCH] phylib: Make PHYs children of their MDIO bus, not the bus' parent.
  2015-11-19 21:33     ` Sergei Shtylyov
@ 2015-11-19 23:04       ` Andrew Lunn
  0 siblings, 0 replies; 7+ messages in thread
From: Andrew Lunn @ 2015-11-19 23:04 UTC (permalink / raw)
  To: Sergei Shtylyov
  Cc: David Daney, netdev, David S. Miller, linux-kernel,
	Florian Fainelli, David Daney, Lennert Buytenhek, Grant Likely

> >What phy is it?
> 
>    Micrel KSZ8041RNLI for sh_eth, KSZ9031 for ravb.
> 
> >Do you have phy DT properties in the MAC node?
> 
>    I have PHY subnodes (with props) in the MAC node.

O.K, so this could be the same problems as

https://lkml.org/lkml/2015/10/15/726

https://www.mail-archive.com/netdev@vger.kernel.org/msg83183.html

We never got a resolution to that problem.

It needs somebody with none working hardware to do some debugging to
figure out exactly what is going on and why my idea to fix it does not
work.

	Andrew

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

end of thread, other threads:[~2015-11-19 23:04 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-08-21 23:16 [PATCH] phylib: Make PHYs children of their MDIO bus, not the bus' parent David Daney
2015-08-21 23:59 ` Florian Fainelli
2015-08-25 18:31 ` David Miller
2015-11-19 20:51 ` Sergei Shtylyov
2015-11-19 21:06   ` Andrew Lunn
2015-11-19 21:33     ` Sergei Shtylyov
2015-11-19 23:04       ` Andrew Lunn

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).