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
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
[...]
> 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.
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
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.