aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/e1000/e1000_hw.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/e1000/e1000_hw.c')
-rw-r--r--drivers/net/e1000/e1000_hw.c38
1 files changed, 38 insertions, 0 deletions
diff --git a/drivers/net/e1000/e1000_hw.c b/drivers/net/e1000/e1000_hw.c
index 749d621a07da..1c5b18478fb2 100644
--- a/drivers/net/e1000/e1000_hw.c
+++ b/drivers/net/e1000/e1000_hw.c
@@ -5537,6 +5537,44 @@ e1000_setup_led(struct e1000_hw *hw)
5537} 5537}
5538 5538
5539/****************************************************************************** 5539/******************************************************************************
5540 * Used on 82571 and later Si that has LED blink bits.
5541 * Callers must use their own timer and should have already called
5542 * e1000_id_led_init()
5543 * Call e1000_cleanup led() to stop blinking
5544 *
5545 * hw - Struct containing variables accessed by shared code
5546 *****************************************************************************/
5547int32_t
5548e1000_blink_led_start(struct e1000_hw *hw)
5549{
5550 int16_t i;
5551 uint32_t ledctl_blink = 0;
5552
5553 DEBUGFUNC("e1000_id_led_blink_on");
5554
5555 if (hw->mac_type < e1000_82571) {
5556 /* Nothing to do */
5557 return E1000_SUCCESS;
5558 }
5559 if (hw->media_type == e1000_media_type_fiber) {
5560 /* always blink LED0 for PCI-E fiber */
5561 ledctl_blink = E1000_LEDCTL_LED0_BLINK |
5562 (E1000_LEDCTL_MODE_LED_ON << E1000_LEDCTL_LED0_MODE_SHIFT);
5563 } else {
5564 /* set the blink bit for each LED that's "on" (0x0E) in ledctl_mode2 */
5565 ledctl_blink = hw->ledctl_mode2;
5566 for (i=0; i < 4; i++)
5567 if (((hw->ledctl_mode2 >> (i * 8)) & 0xFF) ==
5568 E1000_LEDCTL_MODE_LED_ON)
5569 ledctl_blink |= (E1000_LEDCTL_LED0_BLINK << (i * 8));
5570 }
5571
5572 E1000_WRITE_REG(hw, LEDCTL, ledctl_blink);
5573
5574 return E1000_SUCCESS;
5575}
5576
5577/******************************************************************************
5540 * Restores the saved state of the SW controlable LED. 5578 * Restores the saved state of the SW controlable LED.
5541 * 5579 *
5542 * hw - Struct containing variables accessed by shared code 5580 * hw - Struct containing variables accessed by shared code