[PATCH net v1 0/2] net: phy: smsc: use IRQ + relaxed polling to fix missed link-up

Oleksij Rempel posted 2 patches 5 months, 1 week ago
There is a newer version of this series
drivers/net/phy/smsc.c | 43 ++++++++++++++++++++++++++++++++++++++++++
include/linux/phy.h    |  2 +-
2 files changed, 44 insertions(+), 1 deletion(-)
[PATCH net v1 0/2] net: phy: smsc: use IRQ + relaxed polling to fix missed link-up
Posted by Oleksij Rempel 5 months, 1 week ago
This series makes the SMSC LAN8700 (LAN9512) family reliable again
when it is forced to 10 Mb/s and the link partner still advertises
autonegotiation:

Patch 1 – core: treat get_next_update_time() as a reason to keep
the phylib timer running.

Patch 2 – smsc-phy: combine the existing interrupt line with a new
adaptive poll:
- poll every 1 s while the link is down or for 30 s after the last
  interrupt (catches the silent link-up),
- poll only every 30 s once the link is up (reduces wake-ups and saves
  power).  IRQs are still delivered immediately, so genuine link changes
  are reported with minimal latency.

Testing:
Baseline, parallel-detection and advertisement test suites were run on a
LAN9512 (LAN8700 core) against an Intel I350 NIC. All relevant tests
passed.

Thanks,
Oleksij Rempel

Oleksij Rempel (2):
  net: phy: enable polling when driver implements get_next_update_time
  net: phy: smsc: add adaptive polling to recover missed link-up on
    LAN8700

 drivers/net/phy/smsc.c | 43 ++++++++++++++++++++++++++++++++++++++++++
 include/linux/phy.h    |  2 +-
 2 files changed, 44 insertions(+), 1 deletion(-)

--
2.39.5