Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

usbnet: add _mii suffix to usbnet_set/get_link_ksettings

The generic functions assumed devices provided an MDIO interface (accessed
via older mii code, not phylib). This is true only for genuine ethernet.

Devices with a higher level of abstraction or based on different
technologies do not have MDIO. To support this case, first rename
the existing functions with _mii suffix.

v2: rebased on changed upstream
v3: changed names to clearly say that this does NOT use phylib
v4: moved hunks to correct patch; reworded commmit messages

Signed-off-by : Oliver Neukum <oneukum@suse.com>
Tested-by: Roland Dreier <roland@kernel.org>
Reviewed-by: Grant Grundler <grundler@chromium.org>
Tested-by: Grant Grundler <grundler@chromium.org>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Signed-off-by: David S. Miller <davem@davemloft.net>

authored by

Oliver Neukum and committed by
David S. Miller
77651900 e880f8b3

+31 -28
+6 -6
drivers/net/usb/asix_devices.c
··· 125 125 .get_eeprom = asix_get_eeprom, 126 126 .set_eeprom = asix_set_eeprom, 127 127 .nway_reset = usbnet_nway_reset, 128 - .get_link_ksettings = usbnet_get_link_ksettings, 129 - .set_link_ksettings = usbnet_set_link_ksettings, 128 + .get_link_ksettings = usbnet_get_link_ksettings_mii, 129 + .set_link_ksettings = usbnet_set_link_ksettings_mii, 130 130 }; 131 131 132 132 static void ax88172_set_multicast(struct net_device *net) ··· 291 291 .get_eeprom = asix_get_eeprom, 292 292 .set_eeprom = asix_set_eeprom, 293 293 .nway_reset = usbnet_nway_reset, 294 - .get_link_ksettings = usbnet_get_link_ksettings, 295 - .set_link_ksettings = usbnet_set_link_ksettings, 294 + .get_link_ksettings = usbnet_get_link_ksettings_mii, 295 + .set_link_ksettings = usbnet_set_link_ksettings_mii, 296 296 }; 297 297 298 298 static int ax88772_link_reset(struct usbnet *dev) ··· 782 782 .get_eeprom = asix_get_eeprom, 783 783 .set_eeprom = asix_set_eeprom, 784 784 .nway_reset = usbnet_nway_reset, 785 - .get_link_ksettings = usbnet_get_link_ksettings, 786 - .set_link_ksettings = usbnet_set_link_ksettings, 785 + .get_link_ksettings = usbnet_get_link_ksettings_mii, 786 + .set_link_ksettings = usbnet_set_link_ksettings_mii, 787 787 }; 788 788 789 789 static int marvell_phy_init(struct usbnet *dev)
+2 -2
drivers/net/usb/cdc_ncm.c
··· 142 142 .get_sset_count = cdc_ncm_get_sset_count, 143 143 .get_strings = cdc_ncm_get_strings, 144 144 .get_ethtool_stats = cdc_ncm_get_ethtool_stats, 145 - .get_link_ksettings = usbnet_get_link_ksettings, 146 - .set_link_ksettings = usbnet_set_link_ksettings, 145 + .get_link_ksettings = usbnet_get_link_ksettings_mii, 146 + .set_link_ksettings = usbnet_set_link_ksettings_mii, 147 147 }; 148 148 149 149 static u32 cdc_ncm_check_rx_max(struct usbnet *dev, u32 new_rx)
+2 -2
drivers/net/usb/dm9601.c
··· 282 282 .get_eeprom_len = dm9601_get_eeprom_len, 283 283 .get_eeprom = dm9601_get_eeprom, 284 284 .nway_reset = usbnet_nway_reset, 285 - .get_link_ksettings = usbnet_get_link_ksettings, 286 - .set_link_ksettings = usbnet_set_link_ksettings, 285 + .get_link_ksettings = usbnet_get_link_ksettings_mii, 286 + .set_link_ksettings = usbnet_set_link_ksettings_mii, 287 287 }; 288 288 289 289 static void dm9601_set_multicast(struct net_device *net)
+2 -2
drivers/net/usb/mcs7830.c
··· 452 452 .get_msglevel = usbnet_get_msglevel, 453 453 .set_msglevel = usbnet_set_msglevel, 454 454 .nway_reset = usbnet_nway_reset, 455 - .get_link_ksettings = usbnet_get_link_ksettings, 456 - .set_link_ksettings = usbnet_set_link_ksettings, 455 + .get_link_ksettings = usbnet_get_link_ksettings_mii, 456 + .set_link_ksettings = usbnet_set_link_ksettings_mii, 457 457 }; 458 458 459 459 static const struct net_device_ops mcs7830_netdev_ops = {
+2 -2
drivers/net/usb/sierra_net.c
··· 629 629 .get_msglevel = usbnet_get_msglevel, 630 630 .set_msglevel = usbnet_set_msglevel, 631 631 .nway_reset = usbnet_nway_reset, 632 - .get_link_ksettings = usbnet_get_link_ksettings, 633 - .set_link_ksettings = usbnet_set_link_ksettings, 632 + .get_link_ksettings = usbnet_get_link_ksettings_mii, 633 + .set_link_ksettings = usbnet_set_link_ksettings_mii, 634 634 }; 635 635 636 636 static int sierra_net_get_fw_attr(struct usbnet *dev, u16 *datap)
+2 -2
drivers/net/usb/smsc75xx.c
··· 741 741 .set_eeprom = smsc75xx_ethtool_set_eeprom, 742 742 .get_wol = smsc75xx_ethtool_get_wol, 743 743 .set_wol = smsc75xx_ethtool_set_wol, 744 - .get_link_ksettings = usbnet_get_link_ksettings, 745 - .set_link_ksettings = usbnet_set_link_ksettings, 744 + .get_link_ksettings = usbnet_get_link_ksettings_mii, 745 + .set_link_ksettings = usbnet_set_link_ksettings_mii, 746 746 }; 747 747 748 748 static int smsc75xx_ioctl(struct net_device *netdev, struct ifreq *rq, int cmd)
+2 -2
drivers/net/usb/sr9700.c
··· 250 250 .get_eeprom_len = sr9700_get_eeprom_len, 251 251 .get_eeprom = sr9700_get_eeprom, 252 252 .nway_reset = usbnet_nway_reset, 253 - .get_link_ksettings = usbnet_get_link_ksettings, 254 - .set_link_ksettings = usbnet_set_link_ksettings, 253 + .get_link_ksettings = usbnet_get_link_ksettings_mii, 254 + .set_link_ksettings = usbnet_set_link_ksettings_mii, 255 255 }; 256 256 257 257 static void sr9700_set_multicast(struct net_device *netdev)
+2 -2
drivers/net/usb/sr9800.c
··· 527 527 .get_eeprom_len = sr_get_eeprom_len, 528 528 .get_eeprom = sr_get_eeprom, 529 529 .nway_reset = usbnet_nway_reset, 530 - .get_link_ksettings = usbnet_get_link_ksettings, 531 - .set_link_ksettings = usbnet_set_link_ksettings, 530 + .get_link_ksettings = usbnet_get_link_ksettings_mii, 531 + .set_link_ksettings = usbnet_set_link_ksettings_mii, 532 532 }; 533 533 534 534 static int sr9800_link_reset(struct usbnet *dev)
+9 -6
drivers/net/usb/usbnet.c
··· 944 944 * they'll probably want to use this base set. 945 945 */ 946 946 947 - int usbnet_get_link_ksettings(struct net_device *net, 947 + /* These methods are written on the assumption that the device 948 + * uses MII 949 + */ 950 + int usbnet_get_link_ksettings_mii(struct net_device *net, 948 951 struct ethtool_link_ksettings *cmd) 949 952 { 950 953 struct usbnet *dev = netdev_priv(net); ··· 959 956 960 957 return 0; 961 958 } 962 - EXPORT_SYMBOL_GPL(usbnet_get_link_ksettings); 959 + EXPORT_SYMBOL_GPL(usbnet_get_link_ksettings_mii); 963 960 964 - int usbnet_set_link_ksettings(struct net_device *net, 961 + int usbnet_set_link_ksettings_mii(struct net_device *net, 965 962 const struct ethtool_link_ksettings *cmd) 966 963 { 967 964 struct usbnet *dev = netdev_priv(net); ··· 981 978 982 979 return retval; 983 980 } 984 - EXPORT_SYMBOL_GPL(usbnet_set_link_ksettings); 981 + EXPORT_SYMBOL_GPL(usbnet_set_link_ksettings_mii); 985 982 986 983 u32 usbnet_get_link (struct net_device *net) 987 984 { ··· 1046 1043 .get_msglevel = usbnet_get_msglevel, 1047 1044 .set_msglevel = usbnet_set_msglevel, 1048 1045 .get_ts_info = ethtool_op_get_ts_info, 1049 - .get_link_ksettings = usbnet_get_link_ksettings, 1050 - .set_link_ksettings = usbnet_set_link_ksettings, 1046 + .get_link_ksettings = usbnet_get_link_ksettings_mii, 1047 + .set_link_ksettings = usbnet_set_link_ksettings_mii, 1051 1048 }; 1052 1049 1053 1050 /*-------------------------------------------------------------------------*/
+2 -2
include/linux/usb/usbnet.h
··· 267 267 extern void usbnet_resume_rx(struct usbnet *); 268 268 extern void usbnet_purge_paused_rxq(struct usbnet *); 269 269 270 - extern int usbnet_get_link_ksettings(struct net_device *net, 270 + extern int usbnet_get_link_ksettings_mii(struct net_device *net, 271 271 struct ethtool_link_ksettings *cmd); 272 - extern int usbnet_set_link_ksettings(struct net_device *net, 272 + extern int usbnet_set_link_ksettings_mii(struct net_device *net, 273 273 const struct ethtool_link_ksettings *cmd); 274 274 extern u32 usbnet_get_link(struct net_device *net); 275 275 extern u32 usbnet_get_msglevel(struct net_device *);