2016-03-08 08:53:19

by ChunHao Lin

[permalink] [raw]
Subject: [PATCH net] r8169:Remove unnecessary phy reset for pcie nic when setting link spped.

For pcie nic, after setting link speed and thers is no link driver does not need
to do phy reset untill link up.

For some pcie nics, to do this will also reset phy speed down counter and prevent
phy from auto speed down.

This patch fix the issue reported in following link.
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1547151

Signed-off-by: Chunhao Lin <[email protected]>
---
drivers/net/ethernet/realtek/r8169.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/net/ethernet/realtek/r8169.c b/drivers/net/ethernet/realtek/r8169.c
index dd2cf37..94f08f1 100644
--- a/drivers/net/ethernet/realtek/r8169.c
+++ b/drivers/net/ethernet/realtek/r8169.c
@@ -1999,7 +1999,8 @@ static int rtl8169_set_speed(struct net_device *dev,
goto out;

if (netif_running(dev) && (autoneg == AUTONEG_ENABLE) &&
- (advertising & ADVERTISED_1000baseT_Full)) {
+ (advertising & ADVERTISED_1000baseT_Full) &&
+ !pci_is_pcie(tp->pci_dev)) {
mod_timer(&tp->timer, jiffies + RTL8169_PHY_TIMEOUT);
}
out:
--
1.9.1


2016-03-08 23:49:09

by Francois Romieu

[permalink] [raw]
Subject: Re: [PATCH net] r8169:Remove unnecessary phy reset for pcie nic when setting link spped.

Chunhao Lin <[email protected]> :
> For pcie nic, after setting link speed and thers is no link driver does not need
> to do phy reset untill link up.
>
> For some pcie nics, to do this will also reset phy speed down counter and prevent
> phy from auto speed down.
>
> This patch fix the issue reported in following link.
> https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1547151
>
> Signed-off-by: Chunhao Lin <[email protected]>
> ---
> drivers/net/ethernet/realtek/r8169.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/net/ethernet/realtek/r8169.c b/drivers/net/ethernet/realtek/r8169.c
> index dd2cf37..94f08f1 100644
> --- a/drivers/net/ethernet/realtek/r8169.c
> +++ b/drivers/net/ethernet/realtek/r8169.c
> @@ -1999,7 +1999,8 @@ static int rtl8169_set_speed(struct net_device *dev,
> goto out;
>
> if (netif_running(dev) && (autoneg == AUTONEG_ENABLE) &&
> - (advertising & ADVERTISED_1000baseT_Full)) {
> + (advertising & ADVERTISED_1000baseT_Full) &&
> + !pci_is_pcie(tp->pci_dev)) {
> mod_timer(&tp->timer, jiffies + RTL8169_PHY_TIMEOUT);
> }
> out:

Can you clarify:
- actually this patch does not care about the link at all. So when there's
link no phy reset is needed either, right ?
- does "this" in "to do this" means that
1. phy reset prevents phy from auto speed down
2. avoiding phy reset prevents phy from auto speed down
I would expect 1. from the rtl_wol_pll_power_down + rtl_speed_down +
rtl8169_set_speed combo (i.e. we want the driver to allow auto speed down)
but it's a bit ambiguous.

--
Ueimor

2016-03-09 16:48:59

by ChunHao Lin

[permalink] [raw]
Subject: RE: [PATCH net] r8169:Remove unnecessary phy reset for pcie nic when setting link spped.

[...]
> Can you clarify:
> - actually this patch does not care about the link at all. So when there's
> link no phy reset is needed either, right ?
> - does "this" in "to do this" means that
> 1. phy reset prevents phy from auto speed down
> 2. avoiding phy reset prevents phy from auto speed down
> I would expect 1. from the rtl_wol_pll_power_down + rtl_speed_down +
> rtl8169_set_speed combo (i.e. we want the driver to allow auto speed
> down)
> but it's a bit ambiguous.

Unless pcie nic has bug, pcie nic does not need to reset phy to let phy link on.

There is a counter for phy speed down. If phy is in link down state, this counter will start to count down. When it count to 0, phy will speed down. Reset phy will reset this counter and prevent phy from speed down.

------Please consider the environment before printing this e-mail.

2016-03-09 21:44:41

by Francois Romieu

[permalink] [raw]
Subject: Re: [PATCH net] r8169:Remove unnecessary phy reset for pcie nic when setting link spped.

Hau <[email protected]> :
[...]
> Unless pcie nic has bug, pcie nic does not need to reset phy to let phy link on.
>
> There is a counter for phy speed down. If phy is in link down state, this
> counter will start to count down. When it count to 0, phy will speed down.
> Reset phy will reset this counter and prevent phy from speed down.

Thanks for the clarification.

--
Ueimor

2016-03-10 21:18:46

by David Miller

[permalink] [raw]
Subject: Re: [PATCH net] r8169:Remove unnecessary phy reset for pcie nic when setting link spped.

From: Chunhao Lin <[email protected]>
Date: Tue, 8 Mar 2016 16:51:05 +0800

> For pcie nic, after setting link speed and thers is no link driver does not need
> to do phy reset untill link up.

"there's", "until"

> For some pcie nics, to do this will also reset phy speed down counter and prevent
> phy from auto speed down.

Please fix these typos and resubmit, thanks.