Skip to content

Commit d9cc0e4

Browse files
oleremkuba-moo
authored andcommitted
net: usb: lan78xx: skip LTM configuration for LAN7850
Do not configure Latency Tolerance Messaging (LTM) on USB 2.0 hardware. The LAN7850 is a High-Speed (USB 2.0) only device and does not support SuperSpeed features like LTM. Currently, the driver unconditionally attempts to configure LTM registers during initialization. On the LAN7850, these registers do not exist, resulting in writes to invalid or undocumented memory space. This issue was identified during a port to the regmap API with strict register validation enabled. While no functional issues or crashes have been observed from these invalid writes, bypassing LTM initialization on the LAN7850 ensures the driver strictly adheres to the hardware's valid register map. Fixes: 55d7de9 ("Microchip's LAN7800 family USB 2/3 to 10/100/1000 Ethernet device driver") Cc: [email protected] Signed-off-by: Oleksij Rempel <[email protected]> Link: https://patch.msgid.link/[email protected] Signed-off-by: Jakub Kicinski <[email protected]>
1 parent 5098874 commit d9cc0e4

1 file changed

Lines changed: 4 additions & 0 deletions

File tree

drivers/net/usb/lan78xx.c

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3119,6 +3119,10 @@ static int lan78xx_init_ltm(struct lan78xx_net *dev)
31193119
int ret;
31203120
u32 buf;
31213121

3122+
/* LAN7850 is USB 2.0 and does not support LTM */
3123+
if (dev->chipid == ID_REV_CHIP_ID_7850_)
3124+
return 0;
3125+
31223126
ret = lan78xx_read_reg(dev, USB_CFG1, &buf);
31233127
if (ret < 0)
31243128
goto init_ltm_failed;

0 commit comments

Comments
 (0)