Skip to content

Commit 288218b

Browse files
oleremgregkh
authored andcommitted
lan78xx: enable auto speed configuration for LAN7850 if no EEPROM is detected
[ Upstream commit 0e67899 ] Same as LAN7800, LAN7850 can be used without EEPROM. If EEPROM is not present or not flashed, LAN7850 will fail to sync the speed detected by the PHY with the MAC. In case link speed is 100Mbit, it will accidentally work, otherwise no data can be transferred. Better way would be to implement link_up callback, or set auto speed configuration unconditionally. But this changes would be more intrusive. So, for now, set it only if no EEPROM is found. Fixes: e69647a ("lan78xx: Set ASD in MAC_CR when EEE is enabled.") Signed-off-by: Oleksij Rempel <o.rempel@pengutronix.de> Link: https://lore.kernel.org/r/20240222123839.2816561-1-o.rempel@pengutronix.de Signed-off-by: Jakub Kicinski <kuba@kernel.org> Signed-off-by: Sasha Levin <sashal@kernel.org>
1 parent 44112bc commit 288218b

1 file changed

Lines changed: 2 additions & 1 deletion

File tree

drivers/net/usb/lan78xx.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3035,7 +3035,8 @@ static int lan78xx_reset(struct lan78xx_net *dev)
30353035
if (dev->chipid == ID_REV_CHIP_ID_7801_)
30363036
buf &= ~MAC_CR_GMII_EN_;
30373037

3038-
if (dev->chipid == ID_REV_CHIP_ID_7800_) {
3038+
if (dev->chipid == ID_REV_CHIP_ID_7800_ ||
3039+
dev->chipid == ID_REV_CHIP_ID_7850_) {
30393040
ret = lan78xx_read_raw_eeprom(dev, 0, 1, &sig);
30403041
if (!ret && sig != EEPROM_INDICATOR) {
30413042
/* Implies there is no external eeprom. Set mac speed */

0 commit comments

Comments
 (0)