diff options
Diffstat (limited to 'drivers/net/vxge/vxge-ethtool.c')
-rw-r--r-- | drivers/net/vxge/vxge-ethtool.c | 25 |
1 files changed, 16 insertions, 9 deletions
diff --git a/drivers/net/vxge/vxge-ethtool.c b/drivers/net/vxge/vxge-ethtool.c index c5eb034107fd..43c458323f83 100644 --- a/drivers/net/vxge/vxge-ethtool.c +++ b/drivers/net/vxge/vxge-ethtool.c | |||
@@ -134,22 +134,29 @@ static void vxge_ethtool_gregs(struct net_device *dev, | |||
134 | /** | 134 | /** |
135 | * vxge_ethtool_idnic - To physically identify the nic on the system. | 135 | * vxge_ethtool_idnic - To physically identify the nic on the system. |
136 | * @dev : device pointer. | 136 | * @dev : device pointer. |
137 | * @id : pointer to the structure with identification parameters given by | 137 | * @state : requested LED state |
138 | * ethtool. | ||
139 | * | 138 | * |
140 | * Used to physically identify the NIC on the system. | 139 | * Used to physically identify the NIC on the system. |
141 | * The Link LED will blink for a time specified by the user. | ||
142 | * Return value: | ||
143 | * 0 on success | 140 | * 0 on success |
144 | */ | 141 | */ |
145 | static int vxge_ethtool_idnic(struct net_device *dev, u32 data) | 142 | static int vxge_ethtool_idnic(struct net_device *dev, |
143 | enum ethtool_phys_id_state state) | ||
146 | { | 144 | { |
147 | struct vxgedev *vdev = netdev_priv(dev); | 145 | struct vxgedev *vdev = netdev_priv(dev); |
148 | struct __vxge_hw_device *hldev = vdev->devh; | 146 | struct __vxge_hw_device *hldev = vdev->devh; |
149 | 147 | ||
150 | vxge_hw_device_flick_link_led(hldev, VXGE_FLICKER_ON); | 148 | switch (state) { |
151 | msleep_interruptible(data ? (data * HZ) : VXGE_MAX_FLICKER_TIME); | 149 | case ETHTOOL_ID_ACTIVE: |
152 | vxge_hw_device_flick_link_led(hldev, VXGE_FLICKER_OFF); | 150 | vxge_hw_device_flick_link_led(hldev, VXGE_FLICKER_ON); |
151 | break; | ||
152 | |||
153 | case ETHTOOL_ID_INACTIVE: | ||
154 | vxge_hw_device_flick_link_led(hldev, VXGE_FLICKER_OFF); | ||
155 | break; | ||
156 | |||
157 | default: | ||
158 | return -EINVAL; | ||
159 | } | ||
153 | 160 | ||
154 | return 0; | 161 | return 0; |
155 | } | 162 | } |
@@ -1183,7 +1190,7 @@ static const struct ethtool_ops vxge_ethtool_ops = { | |||
1183 | .get_tso = ethtool_op_get_tso, | 1190 | .get_tso = ethtool_op_get_tso, |
1184 | .set_tso = vxge_ethtool_op_set_tso, | 1191 | .set_tso = vxge_ethtool_op_set_tso, |
1185 | .get_strings = vxge_ethtool_get_strings, | 1192 | .get_strings = vxge_ethtool_get_strings, |
1186 | .phys_id = vxge_ethtool_idnic, | 1193 | .set_phys_id = vxge_ethtool_idnic, |
1187 | .get_sset_count = vxge_ethtool_get_sset_count, | 1194 | .get_sset_count = vxge_ethtool_get_sset_count, |
1188 | .get_ethtool_stats = vxge_get_ethtool_stats, | 1195 | .get_ethtool_stats = vxge_get_ethtool_stats, |
1189 | .set_flags = vxge_set_flags, | 1196 | .set_flags = vxge_set_flags, |