|
@@ -1610,15 +1610,16 @@ static irqreturn_t myri10ge_intr(int irq, void *arg)
|
|
|
}
|
|
|
|
|
|
static int
|
|
|
-myri10ge_get_settings(struct net_device *netdev, struct ethtool_cmd *cmd)
|
|
|
+myri10ge_get_link_ksettings(struct net_device *netdev,
|
|
|
+ struct ethtool_link_ksettings *cmd)
|
|
|
{
|
|
|
struct myri10ge_priv *mgp = netdev_priv(netdev);
|
|
|
char *ptr;
|
|
|
int i;
|
|
|
|
|
|
- cmd->autoneg = AUTONEG_DISABLE;
|
|
|
- ethtool_cmd_speed_set(cmd, SPEED_10000);
|
|
|
- cmd->duplex = DUPLEX_FULL;
|
|
|
+ cmd->base.autoneg = AUTONEG_DISABLE;
|
|
|
+ cmd->base.speed = SPEED_10000;
|
|
|
+ cmd->base.duplex = DUPLEX_FULL;
|
|
|
|
|
|
/*
|
|
|
* parse the product code to deterimine the interface type
|
|
@@ -1643,16 +1644,12 @@ myri10ge_get_settings(struct net_device *netdev, struct ethtool_cmd *cmd)
|
|
|
ptr++;
|
|
|
if (*ptr == 'R' || *ptr == 'Q' || *ptr == 'S') {
|
|
|
/* We've found either an XFP, quad ribbon fiber, or SFP+ */
|
|
|
- cmd->port = PORT_FIBRE;
|
|
|
- cmd->supported |= SUPPORTED_FIBRE;
|
|
|
- cmd->advertising |= ADVERTISED_FIBRE;
|
|
|
+ cmd->base.port = PORT_FIBRE;
|
|
|
+ ethtool_link_ksettings_add_link_mode(cmd, supported, FIBRE);
|
|
|
+ ethtool_link_ksettings_add_link_mode(cmd, advertising, FIBRE);
|
|
|
} else {
|
|
|
- cmd->port = PORT_OTHER;
|
|
|
+ cmd->base.port = PORT_OTHER;
|
|
|
}
|
|
|
- if (*ptr == 'R' || *ptr == 'S')
|
|
|
- cmd->transceiver = XCVR_EXTERNAL;
|
|
|
- else
|
|
|
- cmd->transceiver = XCVR_INTERNAL;
|
|
|
|
|
|
return 0;
|
|
|
}
|
|
@@ -1925,7 +1922,6 @@ myri10ge_phys_id(struct net_device *netdev, enum ethtool_phys_id_state state)
|
|
|
}
|
|
|
|
|
|
static const struct ethtool_ops myri10ge_ethtool_ops = {
|
|
|
- .get_settings = myri10ge_get_settings,
|
|
|
.get_drvinfo = myri10ge_get_drvinfo,
|
|
|
.get_coalesce = myri10ge_get_coalesce,
|
|
|
.set_coalesce = myri10ge_set_coalesce,
|
|
@@ -1939,6 +1935,7 @@ static const struct ethtool_ops myri10ge_ethtool_ops = {
|
|
|
.set_msglevel = myri10ge_set_msglevel,
|
|
|
.get_msglevel = myri10ge_get_msglevel,
|
|
|
.set_phys_id = myri10ge_phys_id,
|
|
|
+ .get_link_ksettings = myri10ge_get_link_ksettings,
|
|
|
};
|
|
|
|
|
|
static int myri10ge_allocate_rings(struct myri10ge_slice_state *ss)
|