2016-03-24 10:57:33

by John Keeping

[permalink] [raw]
Subject: [PATCH] stmmac: Fix phy without MDIO subnode

Since commit 88f8b1bb41c6 ("stmmac: Fix 'eth0: No PHY found'
regression") we no longer allocate mdio_bus_data unless there is a MDIO
subnode. This breaks the ethernet on the Radxa Rock2 (using
rk3288-rock2-square.dts) which does not have an MDIO subnode.

That commit was correct that the phy_bus_name test is unhelpful since we
allocate "plat" in the same function and never set phy_bus_name so let's
just drop the test which restores the previous behaviour.

Fixes: 88f8b1bb41c6 ("stmmac: Fix 'eth0: No PHY found' regression")
Signed-off-by: John Keeping <[email protected]>
---
drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c
index dcbd2a1..e0fa060 100644
--- a/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c
+++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c
@@ -189,7 +189,7 @@ stmmac_probe_config_dt(struct platform_device *pdev, const char **mac)
if (of_property_read_u32(np, "snps,phy-addr", &plat->phy_addr) == 0)
dev_warn(&pdev->dev, "snps,phy-addr property is deprecated\n");

- if ((plat->phy_node && !of_phy_is_fixed_link(np)) || !plat->mdio_node)
+ if ((plat->phy_node && !of_phy_is_fixed_link(np)))
plat->mdio_bus_data = NULL;
else
plat->mdio_bus_data =
--
2.7.0.226.gfe986fe


2016-03-24 12:56:24

by Peppe CAVALLARO

[permalink] [raw]
Subject: Re: [PATCH] stmmac: Fix phy without MDIO subnode

Hi John

This should be fixed by some work done some days
ago and not yet committed.

Pls see "stmmac: MDIO fixes" patch-set and let me know
if ok on your side.

Regards
Peppe

On 3/24/2016 11:56 AM, John Keeping wrote:
> Since commit 88f8b1bb41c6 ("stmmac: Fix 'eth0: No PHY found'
> regression") we no longer allocate mdio_bus_data unless there is a MDIO
> subnode. This breaks the ethernet on the Radxa Rock2 (using
> rk3288-rock2-square.dts) which does not have an MDIO subnode.
>
> That commit was correct that the phy_bus_name test is unhelpful since we
> allocate "plat" in the same function and never set phy_bus_name so let's
> just drop the test which restores the previous behaviour.
>
> Fixes: 88f8b1bb41c6 ("stmmac: Fix 'eth0: No PHY found' regression")
> Signed-off-by: John Keeping <[email protected]>
> ---
> drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c
> index dcbd2a1..e0fa060 100644
> --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c
> +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c
> @@ -189,7 +189,7 @@ stmmac_probe_config_dt(struct platform_device *pdev, const char **mac)
> if (of_property_read_u32(np, "snps,phy-addr", &plat->phy_addr) == 0)
> dev_warn(&pdev->dev, "snps,phy-addr property is deprecated\n");
>
> - if ((plat->phy_node && !of_phy_is_fixed_link(np)) || !plat->mdio_node)
> + if ((plat->phy_node && !of_phy_is_fixed_link(np)))
> plat->mdio_bus_data = NULL;
> else
> plat->mdio_bus_data =
>

2016-03-24 13:00:43

by Sergei Shtylyov

[permalink] [raw]
Subject: Re: [PATCH] stmmac: Fix phy without MDIO subnode

Hello.

On 3/24/2016 1:56 PM, John Keeping wrote:

> Since commit 88f8b1bb41c6 ("stmmac: Fix 'eth0: No PHY found'
> regression") we no longer allocate mdio_bus_data unless there is a MDIO
> subnode. This breaks the ethernet on the Radxa Rock2 (using
> rk3288-rock2-square.dts) which does not have an MDIO subnode.
>
> That commit was correct that the phy_bus_name test is unhelpful since we
> allocate "plat" in the same function and never set phy_bus_name so let's
> just drop the test which restores the previous behaviour.
>
> Fixes: 88f8b1bb41c6 ("stmmac: Fix 'eth0: No PHY found' regression")
> Signed-off-by: John Keeping <[email protected]>
> ---
> drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c
> index dcbd2a1..e0fa060 100644
> --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c
> +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c
> @@ -189,7 +189,7 @@ stmmac_probe_config_dt(struct platform_device *pdev, const char **mac)
> if (of_property_read_u32(np, "snps,phy-addr", &plat->phy_addr) == 0)
> dev_warn(&pdev->dev, "snps,phy-addr property is deprecated\n");
>
> - if ((plat->phy_node && !of_phy_is_fixed_link(np)) || !plat->mdio_node)
> + if ((plat->phy_node && !of_phy_is_fixed_link(np)))

Too many parens...

MBR, Sergei

2016-03-24 17:01:46

by John Keeping

[permalink] [raw]
Subject: Re: [PATCH] stmmac: Fix phy without MDIO subnode

On Thu, 24 Mar 2016 13:56:02 +0100, Giuseppe CAVALLARO wrote:

> This should be fixed by some work done some days
> ago and not yet committed.
>
> Pls see "stmmac: MDIO fixes" patch-set and let me know
> if ok on your side.

Yes, that works for me.


Thanks,
John

> On 3/24/2016 11:56 AM, John Keeping wrote:
> > Since commit 88f8b1bb41c6 ("stmmac: Fix 'eth0: No PHY found'
> > regression") we no longer allocate mdio_bus_data unless there is a MDIO
> > subnode. This breaks the ethernet on the Radxa Rock2 (using
> > rk3288-rock2-square.dts) which does not have an MDIO subnode.
> >
> > That commit was correct that the phy_bus_name test is unhelpful since we
> > allocate "plat" in the same function and never set phy_bus_name so let's
> > just drop the test which restores the previous behaviour.
> >
> > Fixes: 88f8b1bb41c6 ("stmmac: Fix 'eth0: No PHY found' regression")
> > Signed-off-by: John Keeping <[email protected]>
> > ---
> > drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c | 2 +-
> > 1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c
> > index dcbd2a1..e0fa060 100644
> > --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c
> > +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c
> > @@ -189,7 +189,7 @@ stmmac_probe_config_dt(struct platform_device *pdev, const char **mac)
> > if (of_property_read_u32(np, "snps,phy-addr", &plat->phy_addr) == 0)
> > dev_warn(&pdev->dev, "snps,phy-addr property is deprecated\n");
> >
> > - if ((plat->phy_node && !of_phy_is_fixed_link(np)) || !plat->mdio_node)
> > + if ((plat->phy_node && !of_phy_is_fixed_link(np)))
> > plat->mdio_bus_data = NULL;
> > else
> > plat->mdio_bus_data =
> >
>

2016-03-25 08:43:19

by Peppe CAVALLARO

[permalink] [raw]
Subject: Re: [PATCH] stmmac: Fix phy without MDIO subnode

On 3/24/2016 6:01 PM, John Keeping wrote:
> On Thu, 24 Mar 2016 13:56:02 +0100, Giuseppe CAVALLARO wrote:
>
>> This should be fixed by some work done some days
>> ago and not yet committed.
>>
>> Pls see "stmmac: MDIO fixes" patch-set and let me know
>> if ok on your side.
>
> Yes, that works for me.

thx John for having tested it on your side.

peppe

>
>
> Thanks,
> John
>
>> On 3/24/2016 11:56 AM, John Keeping wrote:
>>> Since commit 88f8b1bb41c6 ("stmmac: Fix 'eth0: No PHY found'
>>> regression") we no longer allocate mdio_bus_data unless there is a MDIO
>>> subnode. This breaks the ethernet on the Radxa Rock2 (using
>>> rk3288-rock2-square.dts) which does not have an MDIO subnode.
>>>
>>> That commit was correct that the phy_bus_name test is unhelpful since we
>>> allocate "plat" in the same function and never set phy_bus_name so let's
>>> just drop the test which restores the previous behaviour.
>>>
>>> Fixes: 88f8b1bb41c6 ("stmmac: Fix 'eth0: No PHY found' regression")
>>> Signed-off-by: John Keeping <[email protected]>
>>> ---
>>> drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c | 2 +-
>>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>>
>>> diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c
>>> index dcbd2a1..e0fa060 100644
>>> --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c
>>> +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c
>>> @@ -189,7 +189,7 @@ stmmac_probe_config_dt(struct platform_device *pdev, const char **mac)
>>> if (of_property_read_u32(np, "snps,phy-addr", &plat->phy_addr) == 0)
>>> dev_warn(&pdev->dev, "snps,phy-addr property is deprecated\n");
>>>
>>> - if ((plat->phy_node && !of_phy_is_fixed_link(np)) || !plat->mdio_node)
>>> + if ((plat->phy_node && !of_phy_is_fixed_link(np)))
>>> plat->mdio_bus_data = NULL;
>>> else
>>> plat->mdio_bus_data =
>>>
>>
>
>

2016-03-30 18:22:59

by Robert Gadsdon

[permalink] [raw]
Subject: Re: [PATCH] stmmac: Fix phy without MDIO subnode

I have applied this to my Rock2 - Kernel 4.6-rc1 - and eth0 is present,
now, but no network traffic gets through:

To rock2:
$ ping rgrock2
PING rgrock2 (192.168.0.xx) 56(84) bytes of data.
^C
--- rgrock2 ping statistics ---
9 packets transmitted, 0 received, 100% packet loss, time 7999ms

>From rock2:
# ping 192.168.0.x
PING 192.168.0.x (192.168.0.2) 56(84) bytes of data.
>From 192.168.0.xx icmp_seq=1 Destination Host Unreachable
>From 192.168.0.xx icmp_seq=2 Destination Host Unreachable
>From 192.168.0.xx icmp_seq=3 Destination Host Unreachable
>From 192.168.0.xx icmp_seq=4 Destination Host Unreachable
>From 192.168.0.xx icmp_seq=5 Destination Host Unreachable
>From 192.168.0.xx icmp_seq=6 Destination Host Unreachable
>From 192.168.0.xx icmp_seq=7 Destination Host Unreachable
>From 192.168.0.xx icmp_seq=8 Destination Host Unreachable

--- 192.168.0.x ping statistics ---
9 packets transmitted, 0 received, +8 errors, 100% packet loss, time 8001ms

Everything worked OK with kernel 4.5-rc7, and with 4.5 Final with the
-rc7 versions of stmmac_platform.c and stmmac_mdio.c substituted..

Robert Gadsdon. March 30, 2016

2016-03-31 07:40:28

by Peppe CAVALLARO

[permalink] [raw]
Subject: Re: [PATCH] stmmac: Fix phy without MDIO subnode


Hello Robert

On 3/30/2016 8:22 PM, Robert Gadsdon wrote:
> I have applied this to my Rock2 - Kernel 4.6-rc1 - and eth0 is present,
> now, but no network traffic gets through:

there are some patches not yet applied that fix known
problems

pls take a look at :

"stmmac: MDIO fixes"

and

[PATCH (net-next.git)] STMMAC: fix TX Normal descriptor

peppe

>
> To rock2:
> $ ping rgrock2
> PING rgrock2 (192.168.0.xx) 56(84) bytes of data.
> ^C
> --- rgrock2 ping statistics ---
> 9 packets transmitted, 0 received, 100% packet loss, time 7999ms
>
>>From rock2:
> # ping 192.168.0.x
> PING 192.168.0.x (192.168.0.2) 56(84) bytes of data.
>>From 192.168.0.xx icmp_seq=1 Destination Host Unreachable
>>From 192.168.0.xx icmp_seq=2 Destination Host Unreachable
>>From 192.168.0.xx icmp_seq=3 Destination Host Unreachable
>>From 192.168.0.xx icmp_seq=4 Destination Host Unreachable
>>From 192.168.0.xx icmp_seq=5 Destination Host Unreachable
>>From 192.168.0.xx icmp_seq=6 Destination Host Unreachable
>>From 192.168.0.xx icmp_seq=7 Destination Host Unreachable
>>From 192.168.0.xx icmp_seq=8 Destination Host Unreachable
>
> --- 192.168.0.x ping statistics ---
> 9 packets transmitted, 0 received, +8 errors, 100% packet loss, time 8001ms
>
> Everything worked OK with kernel 4.5-rc7, and with 4.5 Final with the
> -rc7 versions of stmmac_platform.c and stmmac_mdio.c substituted..
>
> Robert Gadsdon. March 30, 2016
>

2016-03-31 17:30:27

by Robert Gadsdon

[permalink] [raw]
Subject: Re: [PATCH] stmmac: Fix phy without MDIO subnode

A have applied the 'STMMAC: fix TX normal DESC' patch (from netdev) as
well as the 'stmmac: Fix phy without MDIO subnode' patch, and the Rock2
Ethernet link now works correctly (Kernel 4.6-rc1)

Thanks..

Robert Gadsdon.