}
 
 static int
-qcaspi_get_settings(struct net_device *dev, struct ethtool_cmd *cmd)
+qcaspi_get_link_ksettings(struct net_device *dev,
+                         struct ethtool_link_ksettings *cmd)
 {
-       cmd->transceiver = XCVR_INTERNAL;
-       cmd->supported = SUPPORTED_10baseT_Half;
-       ethtool_cmd_speed_set(cmd,  SPEED_10);
-       cmd->duplex = DUPLEX_HALF;
-       cmd->port = PORT_OTHER;
-       cmd->autoneg = AUTONEG_DISABLE;
+       ethtool_link_ksettings_zero_link_mode(cmd, supported);
+       ethtool_link_ksettings_add_link_mode(cmd, supported, 10baseT_Half);
+
+       cmd->base.speed = SPEED_10;
+       cmd->base.duplex = DUPLEX_HALF;
+       cmd->base.port = PORT_OTHER;
+       cmd->base.autoneg = AUTONEG_DISABLE;
 
        return 0;
 }
 static const struct ethtool_ops qcaspi_ethtool_ops = {
        .get_drvinfo = qcaspi_get_drvinfo,
        .get_link = ethtool_op_get_link,
-       .get_settings = qcaspi_get_settings,
        .get_ethtool_stats = qcaspi_get_ethtool_stats,
        .get_strings = qcaspi_get_strings,
        .get_sset_count = qcaspi_get_sset_count,
        .get_regs = qcaspi_get_regs,
        .get_ringparam = qcaspi_get_ringparam,
        .set_ringparam = qcaspi_set_ringparam,
+       .get_link_ksettings = qcaspi_get_link_ksettings,
 };
 
 void qcaspi_set_ethtool_ops(struct net_device *dev)