mbox series

[0/3,V2,SRU,OEM-5.10/U] Fix Ethernet not working by hotplug - RTL8106

Message ID 20210618034410.3060144-1-koba.ko@canonical.com
Headers show
Series Fix Ethernet not working by hotplug - RTL8106 | expand

Message

Koba Ko June 18, 2021, 3:44 a.m. UTC
BugLink: https://bugs.launchpad.net/bugs/1930645

[Impact]
After hot-plug the Ethernet cable, the status of Ethernet is always down.

[Fix]
Because ASPM is enabled on RTL8106E, the link change interrupt can't be fired immediately.
Must wait a long time to get the link change interrupt.
After discuss with maintainer, he give some suggestions
1. use PHY_POLL.
2. he send a workaround(Ref. [1]) to disable ASPM on RTL8106E.

For 2, because don't know the details about operated registers in rtl_hw_aspm_clkreq_enable, it have higher risk on power usage during suspend.

For 1, Use PHY_POLL have a lower risk because don't change any register operations and use polling method to query link change status.
SRU the patches for 1 first.

Currently keep discussing with Realtek but don't figure out yet.
Will re-SRU the official solution once Realtek resolve the issue.

Ref [1], https://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next.git/commit/?id=1ee8856de82faec9bc8bd0f2308a7f27e30ba207

[Test]
Verified on machines with Realtek Ethernet device, the Ethernet works well after hotplug 30 times.

[Regression Potential]
Medium, use polling methond may have higher cpu usage.

V2: use PHY_POLL.

Heiner Kallweit (1):
  net: phy: rename PHY_IGNORE_INTERRUPT to PHY_MAC_INTERRUPT

Koba Ko (1):
  UBUNTU: SAUCE: r8169: Use PHY_POLL when RTL8106E enable ASPM

 Documentation/networking/phy.rst                |  2 +-
 drivers/net/ethernet/broadcom/genet/bcmmii.c    |  2 +-
 drivers/net/ethernet/realtek/r8169_main.c       | 16 +++++++++++++++-
 drivers/net/ethernet/samsung/sxgbe/sxgbe_mdio.c |  4 ++--
 drivers/net/mdio/mdio-moxart.c                  |  4 ++--
 drivers/net/phy/icplus.c                        |  2 +-
 drivers/net/phy/phy.c                           |  2 +-
 drivers/net/phy/phy_device.c                    |  4 ++--
 include/linux/phy.h                             | 10 +++++-----
 9 files changed, 30 insertions(+), 16 deletions(-)

Comments

Timo Aaltonen June 23, 2021, 10:25 a.m. UTC | #1
applied to oem-5.10, thanks

On 18.6.2021 6.44, Koba Ko wrote:
> BugLink: https://bugs.launchpad.net/bugs/1930645
> 
> [Impact]
> After hot-plug the Ethernet cable, the status of Ethernet is always down.
> 
> [Fix]
> Because ASPM is enabled on RTL8106E, the link change interrupt can't be fired immediately.
> Must wait a long time to get the link change interrupt.
> After discuss with maintainer, he give some suggestions
> 1. use PHY_POLL.
> 2. he send a workaround(Ref. [1]) to disable ASPM on RTL8106E.
> 
> For 2, because don't know the details about operated registers in rtl_hw_aspm_clkreq_enable, it have higher risk on power usage during suspend.
> 
> For 1, Use PHY_POLL have a lower risk because don't change any register operations and use polling method to query link change status.
> SRU the patches for 1 first.
> 
> Currently keep discussing with Realtek but don't figure out yet.
> Will re-SRU the official solution once Realtek resolve the issue.
> 
> Ref [1], https://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next.git/commit/?id=1ee8856de82faec9bc8bd0f2308a7f27e30ba207
> 
> [Test]
> Verified on machines with Realtek Ethernet device, the Ethernet works well after hotplug 30 times.
> 
> [Regression Potential]
> Medium, use polling methond may have higher cpu usage.
> 
> V2: use PHY_POLL.
> 
> Heiner Kallweit (1):
>    net: phy: rename PHY_IGNORE_INTERRUPT to PHY_MAC_INTERRUPT
> 
> Koba Ko (1):
>    UBUNTU: SAUCE: r8169: Use PHY_POLL when RTL8106E enable ASPM
> 
>   Documentation/networking/phy.rst                |  2 +-
>   drivers/net/ethernet/broadcom/genet/bcmmii.c    |  2 +-
>   drivers/net/ethernet/realtek/r8169_main.c       | 16 +++++++++++++++-
>   drivers/net/ethernet/samsung/sxgbe/sxgbe_mdio.c |  4 ++--
>   drivers/net/mdio/mdio-moxart.c                  |  4 ++--
>   drivers/net/phy/icplus.c                        |  2 +-
>   drivers/net/phy/phy.c                           |  2 +-
>   drivers/net/phy/phy_device.c                    |  4 ++--
>   include/linux/phy.h                             | 10 +++++-----
>   9 files changed, 30 insertions(+), 16 deletions(-)
>
Paolo Pisati July 23, 2021, 12:50 p.m. UTC | #2
On Fri, Jun 18, 2021 at 11:44:07AM +0800, Koba Ko wrote:
> BugLink: https://bugs.launchpad.net/bugs/1930645

What's the status of patch 2 and 3? Have you tried to upstream them?