Message ID | 53ea51cabb288a0eba475ffaf1b2afd15b505b62.1652343655.git.lukas@wunner.de (mailing list archive) |
---|---|
State | Accepted |
Commit | 14021da69811cc9bd680a83932614adf308ed0fe |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | Polling be gone on LAN95xx | expand |
Context | Check | Description |
---|---|---|
netdev/tree_selection | success | Clearly marked for net-next |
netdev/fixes_present | success | Fixes tag not required for -next series |
netdev/subject_prefix | success | Link |
netdev/cover_letter | success | Series has a cover letter |
netdev/patch_count | success | Link |
netdev/header_inline | success | No static functions without inline keyword in header files |
netdev/build_32bit | success | Errors and warnings before: 1 this patch: 1 |
netdev/cc_maintainers | success | CCed 8 of 8 maintainers |
netdev/build_clang | success | Errors and warnings before: 0 this patch: 0 |
netdev/module_param | success | Was 0 now: 0 |
netdev/verify_signedoff | success | Signed-off-by tag matches author and committer |
netdev/verify_fixes | success | No Fixes tag |
netdev/build_allmodconfig_warn | success | Errors and warnings before: 1 this patch: 1 |
netdev/checkpatch | success | total: 0 errors, 0 warnings, 0 checks, 24 lines checked |
netdev/kdoc | success | Errors and warnings before: 0 this patch: 0 |
netdev/source_inline | success | Was 0 now: 0 |
On Thu, May 12, 2022 at 10:42:03AM +0200, Lukas Wunner wrote: > smsc95xx_reset() resets the PHY behind the PHY driver's back, which > seems like a bad idea generally. Remove that portion of the function. > > We're about to use PHY interrupts instead of polling to detect link > changes on SMSC LAN95xx chips. Because smsc95xx_reset() is called from > usbnet_open(), PHY interrupt settings are lost whenever the net_device > is brought up. > > There are two other callers of smsc95xx_reset(), namely smsc95xx_bind() > and smsc95xx_reset_resume(), and both may indeed benefit from a PHY > reset. However they already perform one through their calls to > phy_connect_direct() and phy_init_hw(). > > Tested-by: Oleksij Rempel <o.rempel@pengutronix.de> # LAN9514/9512/9500 > Tested-by: Ferry Toth <fntoth@gmail.com> # LAN9514 > Signed-off-by: Lukas Wunner <lukas@wunner.de> > Cc: Martyn Welch <martyn.welch@collabora.com> > Cc: Gabriel Hojda <ghojda@yo2urs.ro> Reviewed-by: Andrew Lunn <andrew@lunn.ch> Andrew kindly provided this tag here: https://lore.kernel.org/netdev/YnGq401sOeC0zwt6@lunn.ch/ Forgot to add it to the commit. Sending it in separately so patchwork picks it up. My apologies for the inconvenience.
diff --git a/drivers/net/usb/smsc95xx.c b/drivers/net/usb/smsc95xx.c index 2cb44d65bbc3..6c37c7adde1b 100644 --- a/drivers/net/usb/smsc95xx.c +++ b/drivers/net/usb/smsc95xx.c @@ -887,24 +887,6 @@ static int smsc95xx_reset(struct usbnet *dev) return ret; } - ret = smsc95xx_write_reg(dev, PM_CTRL, PM_CTL_PHY_RST_); - if (ret < 0) - return ret; - - timeout = 0; - do { - msleep(10); - ret = smsc95xx_read_reg(dev, PM_CTRL, &read_buf); - if (ret < 0) - return ret; - timeout++; - } while ((read_buf & PM_CTL_PHY_RST_) && (timeout < 100)); - - if (timeout >= 100) { - netdev_warn(dev->net, "timeout waiting for PHY Reset\n"); - return ret; - } - ret = smsc95xx_set_mac_address(dev); if (ret < 0) return ret;