linux-stable/drivers/net/phy
Lukas Wunner 2642cc6c3b net: phy: smsc: Disable Energy Detect Power-Down in interrupt mode
Simon reports that if two LAN9514 USB adapters are directly connected
without an intermediate switch, the link fails to come up and link LEDs
remain dark.  The issue was introduced by commit 1ce8b37241 ("usbnet:
smsc95xx: Forward PHY interrupts to PHY driver to avoid polling").

The PHY suffers from a known erratum wherein link detection becomes
unreliable if Energy Detect Power-Down is used.  In poll mode, the
driver works around the erratum by briefly disabling EDPD for 640 msec
to detect a neighbor, then re-enabling it to save power.

In interrupt mode, no interrupt is signaled if EDPD is used by both link
partners, so it must not be enabled at all.

We'll recoup the power savings by enabling SUSPEND1 mode on affected
LAN95xx chips in a forthcoming commit.

Fixes: 1ce8b37241 ("usbnet: smsc95xx: Forward PHY interrupts to PHY driver to avoid polling")
Reported-by: Simon Han <z.han@kunbus.com>
Signed-off-by: Lukas Wunner <lukas@wunner.de>
Link: https://lore.kernel.org/r/439a3f3168c2f9d44b5fd9bb8d2b551711316be6.1655714438.git.lukas@wunner.de
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2022-06-21 21:59:47 -07:00
..
mscc Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2022-03-17 13:56:58 -07:00
Kconfig net: phy: dp83td510: Add support for the DP83TD510 Ethernet PHY 2022-05-09 12:09:30 +01:00
Makefile net: phy: dp83td510: Add support for the DP83TD510 Ethernet PHY 2022-05-09 12:09:30 +01:00
adin.c net: phy: adin: add support for clock output 2022-05-18 19:58:25 -07:00
adin1100.c net: phy: adin1100: Add SQI support 2022-05-01 17:45:35 +01:00
amd.c
aquantia.h
aquantia_hwmon.c
aquantia_main.c phy: aquantia: Fix AN when higher speeds than 1G are not advertised 2022-06-16 20:25:55 -07:00
at803x.c net: phy: at803x: fix NULL pointer dereference on AR9331 PHY 2022-06-19 11:52:23 +01:00
ax88796b.c
bcm-cygnus.c
bcm-phy-lib.c
bcm-phy-lib.h
bcm7xxx.c net: phy: bcm7xxx: Add EPHY entry for 7712 2021-10-24 13:42:28 +01:00
bcm63xx.c
bcm87xx.c net: phy: bcm87xx: Use mmd helpers 2022-05-02 13:21:38 +02:00
bcm54140.c
bcm84881.c
broadcom.c net: phy: broadcom: Fix brcm_fet_config_init() 2022-03-25 16:59:21 -07:00
cicada.c
cortina.c
davicom.c
dp83tc811.c
dp83td510.c net: phy: dp83td510: Add support for the DP83TD510 Ethernet PHY 2022-05-09 12:09:30 +01:00
dp83640.c dp83640: Use generic ptp_msg_is_sync() function 2022-03-07 11:31:34 +00:00
dp83640_reg.h ptp: dp83640: don't define PAGE0 2021-09-14 20:03:24 -07:00
dp83822.c net: phy: DP83822: enable rgmii mode if phy_interface_is_rgmii 2022-05-22 21:46:30 +01:00
dp83848.c
dp83867.c net: phy: dp83867: retrigger SGMII AN when link change 2022-06-06 09:12:18 -07:00
dp83869.c net: phy: add support for TI DP83561-SP phy 2021-11-19 20:13:07 -08:00
et1011c.c
fixed_phy.c net: phy: Directly use ida_alloc()/free() 2022-05-28 12:40:09 +01:00
icplus.c
intel-xway.c
linkmode.c
lxt.c
marvell-88x2222.c
marvell.c net: phy: marvell: Add errata section 5.1 for Alaska PHY 2022-05-17 13:45:52 +02:00
marvell10g.c net: phy: marvell10g: fix return value on error 2022-04-26 11:46:18 +02:00
mdio-boardinfo.c
mdio-boardinfo.h
mdio_bus.c net: mdio: unexport __init-annotated mdio_bus_init() 2022-06-08 10:10:13 -07:00
mdio_device.c net: mdio: introduce a shutdown method to mdio device drivers 2021-09-19 12:08:37 +01:00
mdio_devres.c
mediatek-ge.c net: phy: mediatek: remove PHY mode check on MT7531 2022-02-15 14:21:01 +00:00
meson-gxl.c net: phy: meson-gxl: improve link-up behavior 2022-03-10 14:57:02 -08:00
micrel.c net: phy: micrel: Use the kszphy probe/suspend/resume 2022-05-16 12:58:10 -07:00
microchip.c net: phy: microchip: add comments for the modified LAN88xx phy ID mask. 2022-05-10 18:57:14 -07:00
microchip_t1.c net: phy: LAN937x: add interrupt support for link detection 2022-04-26 10:08:59 +02:00
mii_timestamper.c
motorcomm.c
mxl-gpy.c net: phy: enhance GPY115 loopback disable function 2021-09-27 13:49:38 +01:00
national.c
nxp-c45-tja11xx.c net: phy: Use netif_rx(). 2022-03-06 11:05:31 +00:00
nxp-tja11xx.c
phy-c45.c net: phy: export genphy_c45_baset1_read_status() 2022-05-09 12:09:30 +01:00
phy-core.c ethtool: Add 10base-T1L link mode entry 2022-05-01 17:45:35 +01:00
phy.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2022-05-12 16:15:30 -07:00
phy_device.c net: phy: Add 10BASE-T1L support in phy-c45 2022-05-01 17:45:35 +01:00
phy_led_triggers.c
phylink.c net: phylink: Convert to mdiobus_c45_{read|write} 2022-05-02 13:21:38 +02:00
qsemi.c
realtek.c net: phy: realtek: add support for RTL8365MB-VC internal PHYs 2021-10-18 14:02:56 +01:00
rockchip.c
sfp-bus.c net: sfp: add 2500base-X quirk for Lantech SFP module 2022-03-15 11:41:20 +01:00
sfp.c net: sfp: Add tx-fault workaround for Huawei MA5671A SFP ONT 2022-05-03 16:53:39 -07:00
sfp.h
smsc.c net: phy: smsc: Disable Energy Detect Power-Down in interrupt mode 2022-06-21 21:59:47 -07:00
spi_ks8995.c spi: make remove callback a void function 2022-02-09 13:00:45 +00:00
ste10Xp.c
swphy.c
swphy.h
teranetics.c
uPD60620.c
vitesse.c
xilinx_gmii2rgmii.c net: phy: gmii2rgmii: Support PHY loopback 2021-08-20 14:31:46 +01:00