diff options
author | Wey-Yi Guy <wey-yi.w.guy@intel.com> | 2009-09-17 10:43:54 -0700 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2009-10-07 16:39:35 -0400 |
commit | 02f5dac08364d01a8b2c8e298b529b97f356b3f5 (patch) | |
tree | bac5af488fd78d5b6162cf506d325535ed34a19a /drivers/net/wireless/iwlwifi/iwl-led.c | |
parent | 5953a62e7df064a5d7ba7e790d590f27c65ddf4c (diff) |
iwlwifi: add LED mode to support different LED behavior
Today's implementation allow LED to blink based on the traffic
condition. We introduce an additional LED mode that reflects the RF
state.
The supported LED modes after this are:
IWL_LED_BLINK (current/default) - blink rate based on current Tx/Rx
traffic
IWL_LED_RF_STATE (new) -
LED OFF: No power/RF disabled, the LED is emitting no light
LED ON: Powered/RF enabled, the LED is emitting light
in a stable non-flashing state.
In order to provide the flexibility to support different LED
behavior per user/system preference we add "led_mode" iwlcore module
parameter.
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/iwlwifi/iwl-led.c')
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-led.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-led.c b/drivers/net/wireless/iwlwifi/iwl-led.c index f547233c5b7..685ba9d6f08 100644 --- a/drivers/net/wireless/iwlwifi/iwl-led.c +++ b/drivers/net/wireless/iwlwifi/iwl-led.c @@ -42,6 +42,12 @@ #include "iwl-core.h" #include "iwl-io.h" +/* default: IWL_LED_BLINK(0) using blinking index table */ +static int led_mode; +module_param(led_mode, int, S_IRUGO); +MODULE_PARM_DESC(led_mode, "led mode: 0=blinking, 1=On(RF On)/Off(RF Off), " + "(default 0)\n"); + #ifdef CONFIG_IWLWIFI_DEBUG static const char *led_type_str[] = { __stringify(IWL_LED_TRG_TX), @@ -199,7 +205,8 @@ static int iwl_led_off_reg(struct iwl_priv *priv, int led_id) static int iwl_led_associate(struct iwl_priv *priv, int led_id) { IWL_DEBUG_LED(priv, "Associated\n"); - priv->allow_blinking = 1; + if (led_mode == IWL_LED_BLINK) + priv->allow_blinking = 1; return iwl_led_on_reg(priv, led_id); } static int iwl_led_disassociate(struct iwl_priv *priv, int led_id) |