|
@@ -1336,15 +1336,20 @@ static int restart_autoneg(struct net_device *dev)
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
|
-static int identify_port(struct net_device *dev, u32 data)
|
|
|
+static int identify_port(struct net_device *dev,
|
|
|
+ enum ethtool_phys_id_state state)
|
|
|
{
|
|
|
+ unsigned int val;
|
|
|
struct adapter *adap = netdev2adap(dev);
|
|
|
|
|
|
- if (data == 0)
|
|
|
- data = 2; /* default to 2 seconds */
|
|
|
+ if (state == ETHTOOL_ID_ACTIVE)
|
|
|
+ val = 0xffff;
|
|
|
+ else if (state == ETHTOOL_ID_INACTIVE)
|
|
|
+ val = 0;
|
|
|
+ else
|
|
|
+ return -EINVAL;
|
|
|
|
|
|
- return t4_identify_port(adap, adap->fn, netdev2pinfo(dev)->viid,
|
|
|
- data * 5);
|
|
|
+ return t4_identify_port(adap, adap->fn, netdev2pinfo(dev)->viid, val);
|
|
|
}
|
|
|
|
|
|
static unsigned int from_fw_linkcaps(unsigned int type, unsigned int caps)
|
|
@@ -2011,7 +2016,7 @@ static struct ethtool_ops cxgb_ethtool_ops = {
|
|
|
.set_sg = ethtool_op_set_sg,
|
|
|
.get_link = ethtool_op_get_link,
|
|
|
.get_strings = get_strings,
|
|
|
- .phys_id = identify_port,
|
|
|
+ .set_phys_id = identify_port,
|
|
|
.nway_reset = restart_autoneg,
|
|
|
.get_sset_count = get_sset_count,
|
|
|
.get_ethtool_stats = get_stats,
|