diff options
author | Jeff Kirsher <jeffrey.t.kirsher@intel.com> | 2011-05-03 01:17:34 -0400 |
---|---|---|
committer | Jeff Kirsher <jeffrey.t.kirsher@intel.com> | 2011-05-04 15:07:41 -0400 |
commit | ec7e97e9a0265255485e217f4f2d3513949e7083 (patch) | |
tree | b95af243f66f04057595dff30e062f4699d8658a | |
parent | dca97ad2ec37aa98c45dfe1d531d9ba7048e814e (diff) |
ixgb: convert to set_phys_id
Based on the original patch sent by Stephen Hemminger.
This version incorporates the ethtool changes that Bruce Allan
submitted.
CC: Stephen Hemminger <shemminger@vyatta.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Tested-by: Evan Swanson <evan.swanson@intel.com>
-rw-r--r-- | drivers/net/ixgb/ixgb.h | 3 | ||||
-rw-r--r-- | drivers/net/ixgb/ixgb_ethtool.c | 46 |
2 files changed, 12 insertions, 37 deletions
diff --git a/drivers/net/ixgb/ixgb.h b/drivers/net/ixgb/ixgb.h index 8f3df044e81e..49e8408f05fc 100644 --- a/drivers/net/ixgb/ixgb.h +++ b/drivers/net/ixgb/ixgb.h | |||
@@ -157,9 +157,6 @@ struct ixgb_adapter { | |||
157 | u16 link_duplex; | 157 | u16 link_duplex; |
158 | struct work_struct tx_timeout_task; | 158 | struct work_struct tx_timeout_task; |
159 | 159 | ||
160 | struct timer_list blink_timer; | ||
161 | unsigned long led_status; | ||
162 | |||
163 | /* TX */ | 160 | /* TX */ |
164 | struct ixgb_desc_ring tx_ring ____cacheline_aligned_in_smp; | 161 | struct ixgb_desc_ring tx_ring ____cacheline_aligned_in_smp; |
165 | unsigned int restart_queue; | 162 | unsigned int restart_queue; |
diff --git a/drivers/net/ixgb/ixgb_ethtool.c b/drivers/net/ixgb/ixgb_ethtool.c index 5f224c387e0c..6da890b9534c 100644 --- a/drivers/net/ixgb/ixgb_ethtool.c +++ b/drivers/net/ixgb/ixgb_ethtool.c | |||
@@ -611,45 +611,23 @@ err_setup_rx: | |||
611 | return err; | 611 | return err; |
612 | } | 612 | } |
613 | 613 | ||
614 | /* toggle LED 4 times per second = 2 "blinks" per second */ | ||
615 | #define IXGB_ID_INTERVAL (HZ/4) | ||
616 | |||
617 | /* bit defines for adapter->led_status */ | ||
618 | #define IXGB_LED_ON 0 | ||
619 | |||
620 | static void | ||
621 | ixgb_led_blink_callback(unsigned long data) | ||
622 | { | ||
623 | struct ixgb_adapter *adapter = (struct ixgb_adapter *)data; | ||
624 | |||
625 | if (test_and_change_bit(IXGB_LED_ON, &adapter->led_status)) | ||
626 | ixgb_led_off(&adapter->hw); | ||
627 | else | ||
628 | ixgb_led_on(&adapter->hw); | ||
629 | |||
630 | mod_timer(&adapter->blink_timer, jiffies + IXGB_ID_INTERVAL); | ||
631 | } | ||
632 | |||
633 | static int | 614 | static int |
634 | ixgb_phys_id(struct net_device *netdev, u32 data) | 615 | ixgb_set_phys_id(struct net_device *netdev, enum ethtool_phys_id_state state) |
635 | { | 616 | { |
636 | struct ixgb_adapter *adapter = netdev_priv(netdev); | 617 | struct ixgb_adapter *adapter = netdev_priv(netdev); |
637 | 618 | ||
638 | if (!data) | 619 | switch (state) { |
639 | data = INT_MAX; | 620 | case ETHTOOL_ID_ACTIVE: |
640 | 621 | return 2; | |
641 | if (!adapter->blink_timer.function) { | ||
642 | init_timer(&adapter->blink_timer); | ||
643 | adapter->blink_timer.function = ixgb_led_blink_callback; | ||
644 | adapter->blink_timer.data = (unsigned long)adapter; | ||
645 | } | ||
646 | 622 | ||
647 | mod_timer(&adapter->blink_timer, jiffies); | 623 | case ETHTOOL_ID_ON: |
624 | ixgb_led_on(&adapter->hw); | ||
625 | break; | ||
648 | 626 | ||
649 | msleep_interruptible(data * 1000); | 627 | case ETHTOOL_ID_OFF: |
650 | del_timer_sync(&adapter->blink_timer); | 628 | case ETHTOOL_ID_INACTIVE: |
651 | ixgb_led_off(&adapter->hw); | 629 | ixgb_led_off(&adapter->hw); |
652 | clear_bit(IXGB_LED_ON, &adapter->led_status); | 630 | } |
653 | 631 | ||
654 | return 0; | 632 | return 0; |
655 | } | 633 | } |
@@ -767,7 +745,7 @@ static const struct ethtool_ops ixgb_ethtool_ops = { | |||
767 | .set_msglevel = ixgb_set_msglevel, | 745 | .set_msglevel = ixgb_set_msglevel, |
768 | .set_tso = ixgb_set_tso, | 746 | .set_tso = ixgb_set_tso, |
769 | .get_strings = ixgb_get_strings, | 747 | .get_strings = ixgb_get_strings, |
770 | .phys_id = ixgb_phys_id, | 748 | .set_phys_id = ixgb_set_phys_id, |
771 | .get_sset_count = ixgb_get_sset_count, | 749 | .get_sset_count = ixgb_get_sset_count, |
772 | .get_ethtool_stats = ixgb_get_ethtool_stats, | 750 | .get_ethtool_stats = ixgb_get_ethtool_stats, |
773 | .get_flags = ethtool_op_get_flags, | 751 | .get_flags = ethtool_op_get_flags, |