diff options
author | Ron Mercer <ron.mercer@qlogic.com> | 2009-10-21 07:07:39 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2009-10-22 00:45:40 -0400 |
commit | d8eb59dc8b9e77bb4fa5420ff80142759ad5cd7b (patch) | |
tree | d0b331eca84dabceae8463ec119743907fabcd3b /drivers/net/qlge/qlge_ethtool.c | |
parent | 1d30df24ec85477368e6e38fe1b4d1b67b3be9d4 (diff) |
qlge: Add ethtool blink function.
Signed-off-by: Ron Mercer <ron.mercer@qlogic.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/qlge/qlge_ethtool.c')
-rw-r--r-- | drivers/net/qlge/qlge_ethtool.c | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/drivers/net/qlge/qlge_ethtool.c b/drivers/net/qlge/qlge_ethtool.c index dfb5c800cea2..0c0549bc7bde 100644 --- a/drivers/net/qlge/qlge_ethtool.c +++ b/drivers/net/qlge/qlge_ethtool.c | |||
@@ -371,6 +371,33 @@ static void ql_get_drvinfo(struct net_device *ndev, | |||
371 | drvinfo->eedump_len = 0; | 371 | drvinfo->eedump_len = 0; |
372 | } | 372 | } |
373 | 373 | ||
374 | |||
375 | static int ql_phys_id(struct net_device *ndev, u32 data) | ||
376 | { | ||
377 | struct ql_adapter *qdev = netdev_priv(ndev); | ||
378 | u32 led_reg, i; | ||
379 | int status; | ||
380 | |||
381 | /* Save the current LED settings */ | ||
382 | status = ql_mb_get_led_cfg(qdev); | ||
383 | if (status) | ||
384 | return status; | ||
385 | led_reg = qdev->led_config; | ||
386 | |||
387 | /* Start blinking the led */ | ||
388 | if (!data || data > 300) | ||
389 | data = 300; | ||
390 | |||
391 | for (i = 0; i < (data * 10); i++) | ||
392 | ql_mb_set_led_cfg(qdev, QL_LED_BLINK); | ||
393 | |||
394 | /* Restore LED settings */ | ||
395 | status = ql_mb_set_led_cfg(qdev, led_reg); | ||
396 | if (status) | ||
397 | return status; | ||
398 | |||
399 | return 0; | ||
400 | } | ||
374 | static int ql_get_coalesce(struct net_device *dev, struct ethtool_coalesce *c) | 401 | static int ql_get_coalesce(struct net_device *dev, struct ethtool_coalesce *c) |
375 | { | 402 | { |
376 | struct ql_adapter *qdev = netdev_priv(dev); | 403 | struct ql_adapter *qdev = netdev_priv(dev); |
@@ -499,6 +526,7 @@ const struct ethtool_ops qlge_ethtool_ops = { | |||
499 | .get_msglevel = ql_get_msglevel, | 526 | .get_msglevel = ql_get_msglevel, |
500 | .set_msglevel = ql_set_msglevel, | 527 | .set_msglevel = ql_set_msglevel, |
501 | .get_link = ethtool_op_get_link, | 528 | .get_link = ethtool_op_get_link, |
529 | .phys_id = ql_phys_id, | ||
502 | .get_pauseparam = ql_get_pauseparam, | 530 | .get_pauseparam = ql_get_pauseparam, |
503 | .set_pauseparam = ql_set_pauseparam, | 531 | .set_pauseparam = ql_set_pauseparam, |
504 | .get_rx_csum = ql_get_rx_csum, | 532 | .get_rx_csum = ql_get_rx_csum, |