|
@@ -3800,7 +3800,8 @@ static void rtl8152_get_drvinfo(struct net_device *netdev,
|
|
|
}
|
|
|
|
|
|
static
|
|
|
-int rtl8152_get_settings(struct net_device *netdev, struct ethtool_cmd *cmd)
|
|
|
+int rtl8152_get_link_ksettings(struct net_device *netdev,
|
|
|
+ struct ethtool_link_ksettings *cmd)
|
|
|
{
|
|
|
struct r8152 *tp = netdev_priv(netdev);
|
|
|
int ret;
|
|
@@ -3814,7 +3815,7 @@ int rtl8152_get_settings(struct net_device *netdev, struct ethtool_cmd *cmd)
|
|
|
|
|
|
mutex_lock(&tp->control);
|
|
|
|
|
|
- ret = mii_ethtool_gset(&tp->mii, cmd);
|
|
|
+ ret = mii_ethtool_get_link_ksettings(&tp->mii, cmd);
|
|
|
|
|
|
mutex_unlock(&tp->control);
|
|
|
|
|
@@ -3824,7 +3825,8 @@ out:
|
|
|
return ret;
|
|
|
}
|
|
|
|
|
|
-static int rtl8152_set_settings(struct net_device *dev, struct ethtool_cmd *cmd)
|
|
|
+static int rtl8152_set_link_ksettings(struct net_device *dev,
|
|
|
+ const struct ethtool_link_ksettings *cmd)
|
|
|
{
|
|
|
struct r8152 *tp = netdev_priv(dev);
|
|
|
int ret;
|
|
@@ -3835,11 +3837,12 @@ static int rtl8152_set_settings(struct net_device *dev, struct ethtool_cmd *cmd)
|
|
|
|
|
|
mutex_lock(&tp->control);
|
|
|
|
|
|
- ret = rtl8152_set_speed(tp, cmd->autoneg, cmd->speed, cmd->duplex);
|
|
|
+ ret = rtl8152_set_speed(tp, cmd->base.autoneg, cmd->base.speed,
|
|
|
+ cmd->base.duplex);
|
|
|
if (!ret) {
|
|
|
- tp->autoneg = cmd->autoneg;
|
|
|
- tp->speed = cmd->speed;
|
|
|
- tp->duplex = cmd->duplex;
|
|
|
+ tp->autoneg = cmd->base.autoneg;
|
|
|
+ tp->speed = cmd->base.speed;
|
|
|
+ tp->duplex = cmd->base.duplex;
|
|
|
}
|
|
|
|
|
|
mutex_unlock(&tp->control);
|
|
@@ -4117,8 +4120,6 @@ static int rtl8152_set_coalesce(struct net_device *netdev,
|
|
|
|
|
|
static const struct ethtool_ops ops = {
|
|
|
.get_drvinfo = rtl8152_get_drvinfo,
|
|
|
- .get_settings = rtl8152_get_settings,
|
|
|
- .set_settings = rtl8152_set_settings,
|
|
|
.get_link = ethtool_op_get_link,
|
|
|
.nway_reset = rtl8152_nway_reset,
|
|
|
.get_msglevel = rtl8152_get_msglevel,
|
|
@@ -4132,6 +4133,8 @@ static const struct ethtool_ops ops = {
|
|
|
.set_coalesce = rtl8152_set_coalesce,
|
|
|
.get_eee = rtl_ethtool_get_eee,
|
|
|
.set_eee = rtl_ethtool_set_eee,
|
|
|
+ .get_link_ksettings = rtl8152_get_link_ksettings,
|
|
|
+ .set_link_ksettings = rtl8152_set_link_ksettings,
|
|
|
};
|
|
|
|
|
|
static int rtl8152_ioctl(struct net_device *netdev, struct ifreq *rq, int cmd)
|