Commit 77651900 authored by Oliver Neukum's avatar Oliver Neukum Committed by David S. Miller

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: default avatarRoland Dreier <roland@kernel.org>
Reviewed-by: default avatarGrant Grundler <grundler@chromium.org>
Tested-by: default avatarGrant Grundler <grundler@chromium.org>
Reviewed-by: default avatarAndrew Lunn <andrew@lunn.ch>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent e880f8b3
...@@ -125,8 +125,8 @@ static const struct ethtool_ops ax88172_ethtool_ops = { ...@@ -125,8 +125,8 @@ static const struct ethtool_ops ax88172_ethtool_ops = {
.get_eeprom = asix_get_eeprom, .get_eeprom = asix_get_eeprom,
.set_eeprom = asix_set_eeprom, .set_eeprom = asix_set_eeprom,
.nway_reset = usbnet_nway_reset, .nway_reset = usbnet_nway_reset,
.get_link_ksettings = usbnet_get_link_ksettings, .get_link_ksettings = usbnet_get_link_ksettings_mii,
.set_link_ksettings = usbnet_set_link_ksettings, .set_link_ksettings = usbnet_set_link_ksettings_mii,
}; };
static void ax88172_set_multicast(struct net_device *net) static void ax88172_set_multicast(struct net_device *net)
...@@ -291,8 +291,8 @@ static const struct ethtool_ops ax88772_ethtool_ops = { ...@@ -291,8 +291,8 @@ static const struct ethtool_ops ax88772_ethtool_ops = {
.get_eeprom = asix_get_eeprom, .get_eeprom = asix_get_eeprom,
.set_eeprom = asix_set_eeprom, .set_eeprom = asix_set_eeprom,
.nway_reset = usbnet_nway_reset, .nway_reset = usbnet_nway_reset,
.get_link_ksettings = usbnet_get_link_ksettings, .get_link_ksettings = usbnet_get_link_ksettings_mii,
.set_link_ksettings = usbnet_set_link_ksettings, .set_link_ksettings = usbnet_set_link_ksettings_mii,
}; };
static int ax88772_link_reset(struct usbnet *dev) static int ax88772_link_reset(struct usbnet *dev)
...@@ -782,8 +782,8 @@ static const struct ethtool_ops ax88178_ethtool_ops = { ...@@ -782,8 +782,8 @@ static const struct ethtool_ops ax88178_ethtool_ops = {
.get_eeprom = asix_get_eeprom, .get_eeprom = asix_get_eeprom,
.set_eeprom = asix_set_eeprom, .set_eeprom = asix_set_eeprom,
.nway_reset = usbnet_nway_reset, .nway_reset = usbnet_nway_reset,
.get_link_ksettings = usbnet_get_link_ksettings, .get_link_ksettings = usbnet_get_link_ksettings_mii,
.set_link_ksettings = usbnet_set_link_ksettings, .set_link_ksettings = usbnet_set_link_ksettings_mii,
}; };
static int marvell_phy_init(struct usbnet *dev) static int marvell_phy_init(struct usbnet *dev)
......
...@@ -142,8 +142,8 @@ static const struct ethtool_ops cdc_ncm_ethtool_ops = { ...@@ -142,8 +142,8 @@ static const struct ethtool_ops cdc_ncm_ethtool_ops = {
.get_sset_count = cdc_ncm_get_sset_count, .get_sset_count = cdc_ncm_get_sset_count,
.get_strings = cdc_ncm_get_strings, .get_strings = cdc_ncm_get_strings,
.get_ethtool_stats = cdc_ncm_get_ethtool_stats, .get_ethtool_stats = cdc_ncm_get_ethtool_stats,
.get_link_ksettings = usbnet_get_link_ksettings, .get_link_ksettings = usbnet_get_link_ksettings_mii,
.set_link_ksettings = usbnet_set_link_ksettings, .set_link_ksettings = usbnet_set_link_ksettings_mii,
}; };
static u32 cdc_ncm_check_rx_max(struct usbnet *dev, u32 new_rx) static u32 cdc_ncm_check_rx_max(struct usbnet *dev, u32 new_rx)
......
...@@ -282,8 +282,8 @@ static const struct ethtool_ops dm9601_ethtool_ops = { ...@@ -282,8 +282,8 @@ static const struct ethtool_ops dm9601_ethtool_ops = {
.get_eeprom_len = dm9601_get_eeprom_len, .get_eeprom_len = dm9601_get_eeprom_len,
.get_eeprom = dm9601_get_eeprom, .get_eeprom = dm9601_get_eeprom,
.nway_reset = usbnet_nway_reset, .nway_reset = usbnet_nway_reset,
.get_link_ksettings = usbnet_get_link_ksettings, .get_link_ksettings = usbnet_get_link_ksettings_mii,
.set_link_ksettings = usbnet_set_link_ksettings, .set_link_ksettings = usbnet_set_link_ksettings_mii,
}; };
static void dm9601_set_multicast(struct net_device *net) static void dm9601_set_multicast(struct net_device *net)
......
...@@ -452,8 +452,8 @@ static const struct ethtool_ops mcs7830_ethtool_ops = { ...@@ -452,8 +452,8 @@ static const struct ethtool_ops mcs7830_ethtool_ops = {
.get_msglevel = usbnet_get_msglevel, .get_msglevel = usbnet_get_msglevel,
.set_msglevel = usbnet_set_msglevel, .set_msglevel = usbnet_set_msglevel,
.nway_reset = usbnet_nway_reset, .nway_reset = usbnet_nway_reset,
.get_link_ksettings = usbnet_get_link_ksettings, .get_link_ksettings = usbnet_get_link_ksettings_mii,
.set_link_ksettings = usbnet_set_link_ksettings, .set_link_ksettings = usbnet_set_link_ksettings_mii,
}; };
static const struct net_device_ops mcs7830_netdev_ops = { static const struct net_device_ops mcs7830_netdev_ops = {
......
...@@ -629,8 +629,8 @@ static const struct ethtool_ops sierra_net_ethtool_ops = { ...@@ -629,8 +629,8 @@ static const struct ethtool_ops sierra_net_ethtool_ops = {
.get_msglevel = usbnet_get_msglevel, .get_msglevel = usbnet_get_msglevel,
.set_msglevel = usbnet_set_msglevel, .set_msglevel = usbnet_set_msglevel,
.nway_reset = usbnet_nway_reset, .nway_reset = usbnet_nway_reset,
.get_link_ksettings = usbnet_get_link_ksettings, .get_link_ksettings = usbnet_get_link_ksettings_mii,
.set_link_ksettings = usbnet_set_link_ksettings, .set_link_ksettings = usbnet_set_link_ksettings_mii,
}; };
static int sierra_net_get_fw_attr(struct usbnet *dev, u16 *datap) static int sierra_net_get_fw_attr(struct usbnet *dev, u16 *datap)
......
...@@ -741,8 +741,8 @@ static const struct ethtool_ops smsc75xx_ethtool_ops = { ...@@ -741,8 +741,8 @@ static const struct ethtool_ops smsc75xx_ethtool_ops = {
.set_eeprom = smsc75xx_ethtool_set_eeprom, .set_eeprom = smsc75xx_ethtool_set_eeprom,
.get_wol = smsc75xx_ethtool_get_wol, .get_wol = smsc75xx_ethtool_get_wol,
.set_wol = smsc75xx_ethtool_set_wol, .set_wol = smsc75xx_ethtool_set_wol,
.get_link_ksettings = usbnet_get_link_ksettings, .get_link_ksettings = usbnet_get_link_ksettings_mii,
.set_link_ksettings = usbnet_set_link_ksettings, .set_link_ksettings = usbnet_set_link_ksettings_mii,
}; };
static int smsc75xx_ioctl(struct net_device *netdev, struct ifreq *rq, int cmd) static int smsc75xx_ioctl(struct net_device *netdev, struct ifreq *rq, int cmd)
......
...@@ -250,8 +250,8 @@ static const struct ethtool_ops sr9700_ethtool_ops = { ...@@ -250,8 +250,8 @@ static const struct ethtool_ops sr9700_ethtool_ops = {
.get_eeprom_len = sr9700_get_eeprom_len, .get_eeprom_len = sr9700_get_eeprom_len,
.get_eeprom = sr9700_get_eeprom, .get_eeprom = sr9700_get_eeprom,
.nway_reset = usbnet_nway_reset, .nway_reset = usbnet_nway_reset,
.get_link_ksettings = usbnet_get_link_ksettings, .get_link_ksettings = usbnet_get_link_ksettings_mii,
.set_link_ksettings = usbnet_set_link_ksettings, .set_link_ksettings = usbnet_set_link_ksettings_mii,
}; };
static void sr9700_set_multicast(struct net_device *netdev) static void sr9700_set_multicast(struct net_device *netdev)
......
...@@ -527,8 +527,8 @@ static const struct ethtool_ops sr9800_ethtool_ops = { ...@@ -527,8 +527,8 @@ static const struct ethtool_ops sr9800_ethtool_ops = {
.get_eeprom_len = sr_get_eeprom_len, .get_eeprom_len = sr_get_eeprom_len,
.get_eeprom = sr_get_eeprom, .get_eeprom = sr_get_eeprom,
.nway_reset = usbnet_nway_reset, .nway_reset = usbnet_nway_reset,
.get_link_ksettings = usbnet_get_link_ksettings, .get_link_ksettings = usbnet_get_link_ksettings_mii,
.set_link_ksettings = usbnet_set_link_ksettings, .set_link_ksettings = usbnet_set_link_ksettings_mii,
}; };
static int sr9800_link_reset(struct usbnet *dev) static int sr9800_link_reset(struct usbnet *dev)
......
...@@ -944,7 +944,10 @@ EXPORT_SYMBOL_GPL(usbnet_open); ...@@ -944,7 +944,10 @@ EXPORT_SYMBOL_GPL(usbnet_open);
* they'll probably want to use this base set. * they'll probably want to use this base set.
*/ */
int usbnet_get_link_ksettings(struct net_device *net, /* These methods are written on the assumption that the device
* uses MII
*/
int usbnet_get_link_ksettings_mii(struct net_device *net,
struct ethtool_link_ksettings *cmd) struct ethtool_link_ksettings *cmd)
{ {
struct usbnet *dev = netdev_priv(net); struct usbnet *dev = netdev_priv(net);
...@@ -956,9 +959,9 @@ int usbnet_get_link_ksettings(struct net_device *net, ...@@ -956,9 +959,9 @@ int usbnet_get_link_ksettings(struct net_device *net,
return 0; return 0;
} }
EXPORT_SYMBOL_GPL(usbnet_get_link_ksettings); EXPORT_SYMBOL_GPL(usbnet_get_link_ksettings_mii);
int usbnet_set_link_ksettings(struct net_device *net, int usbnet_set_link_ksettings_mii(struct net_device *net,
const struct ethtool_link_ksettings *cmd) const struct ethtool_link_ksettings *cmd)
{ {
struct usbnet *dev = netdev_priv(net); struct usbnet *dev = netdev_priv(net);
...@@ -978,7 +981,7 @@ int usbnet_set_link_ksettings(struct net_device *net, ...@@ -978,7 +981,7 @@ int usbnet_set_link_ksettings(struct net_device *net,
return retval; return retval;
} }
EXPORT_SYMBOL_GPL(usbnet_set_link_ksettings); EXPORT_SYMBOL_GPL(usbnet_set_link_ksettings_mii);
u32 usbnet_get_link (struct net_device *net) u32 usbnet_get_link (struct net_device *net)
{ {
...@@ -1043,8 +1046,8 @@ static const struct ethtool_ops usbnet_ethtool_ops = { ...@@ -1043,8 +1046,8 @@ static const struct ethtool_ops usbnet_ethtool_ops = {
.get_msglevel = usbnet_get_msglevel, .get_msglevel = usbnet_get_msglevel,
.set_msglevel = usbnet_set_msglevel, .set_msglevel = usbnet_set_msglevel,
.get_ts_info = ethtool_op_get_ts_info, .get_ts_info = ethtool_op_get_ts_info,
.get_link_ksettings = usbnet_get_link_ksettings, .get_link_ksettings = usbnet_get_link_ksettings_mii,
.set_link_ksettings = usbnet_set_link_ksettings, .set_link_ksettings = usbnet_set_link_ksettings_mii,
}; };
/*-------------------------------------------------------------------------*/ /*-------------------------------------------------------------------------*/
......
...@@ -267,9 +267,9 @@ extern void usbnet_pause_rx(struct usbnet *); ...@@ -267,9 +267,9 @@ extern void usbnet_pause_rx(struct usbnet *);
extern void usbnet_resume_rx(struct usbnet *); extern void usbnet_resume_rx(struct usbnet *);
extern void usbnet_purge_paused_rxq(struct usbnet *); extern void usbnet_purge_paused_rxq(struct usbnet *);
extern int usbnet_get_link_ksettings(struct net_device *net, extern int usbnet_get_link_ksettings_mii(struct net_device *net,
struct ethtool_link_ksettings *cmd); struct ethtool_link_ksettings *cmd);
extern int usbnet_set_link_ksettings(struct net_device *net, extern int usbnet_set_link_ksettings_mii(struct net_device *net,
const struct ethtool_link_ksettings *cmd); const struct ethtool_link_ksettings *cmd);
extern u32 usbnet_get_link(struct net_device *net); extern u32 usbnet_get_link(struct net_device *net);
extern u32 usbnet_get_msglevel(struct net_device *); extern u32 usbnet_get_msglevel(struct net_device *);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment