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