b43: LP-PHY: Two small spec updates
[pandora-kernel.git] / drivers / net / wireless / iwlwifi / iwl-led.c
index 5e64252..f420c99 100644 (file)
@@ -54,7 +54,7 @@ static const char *led_type_str[] = {
 
 
 static const struct {
-       u16 tpt;
+       u16 tpt;        /* Mb/s */
        u8 on_time;
        u8 off_time;
 } blink_tbl[] =
@@ -91,8 +91,8 @@ static int iwl_send_led_cmd(struct iwl_priv *priv, struct iwl_led_cmd *led_cmd)
                .id = REPLY_LEDS_CMD,
                .len = sizeof(struct iwl_led_cmd),
                .data = led_cmd,
-               .meta.flags = CMD_ASYNC,
-               .meta.u.callback = NULL,
+               .flags = CMD_ASYNC,
+               .callback = NULL,
        };
        u32 reg;
 
@@ -104,7 +104,7 @@ static int iwl_send_led_cmd(struct iwl_priv *priv, struct iwl_led_cmd *led_cmd)
 }
 
 /* Set led pattern command */
-static int iwl4965_led_pattern(struct iwl_priv *priv, int led_id,
+static int iwl_led_pattern(struct iwl_priv *priv, int led_id,
                               unsigned int idx)
 {
        struct iwl_led_cmd led_cmd = {
@@ -121,7 +121,7 @@ static int iwl4965_led_pattern(struct iwl_priv *priv, int led_id,
 }
 
 /* Set led register off */
-static int iwl4965_led_on_reg(struct iwl_priv *priv, int led_id)
+static int iwl_led_on_reg(struct iwl_priv *priv, int led_id)
 {
        IWL_DEBUG_LED(priv, "led on %d\n", led_id);
        iwl_write32(priv, CSR_LED_REG, CSR_LED_REG_TRUN_ON);
@@ -130,7 +130,7 @@ static int iwl4965_led_on_reg(struct iwl_priv *priv, int led_id)
 
 #if 0
 /* Set led on command */
-static int iwl4965_led_on(struct iwl_priv *priv, int led_id)
+static int iwl_led_on(struct iwl_priv *priv, int led_id)
 {
        struct iwl_led_cmd led_cmd = {
                .id = led_id,
@@ -142,7 +142,7 @@ static int iwl4965_led_on(struct iwl_priv *priv, int led_id)
 }
 
 /* Set led off command */
-int iwl4965_led_off(struct iwl_priv *priv, int led_id)
+int iwl_led_off(struct iwl_priv *priv, int led_id)
 {
        struct iwl_led_cmd led_cmd = {
                .id = led_id,
@@ -157,7 +157,7 @@ int iwl4965_led_off(struct iwl_priv *priv, int led_id)
 
 
 /* Set led register off */
-static int iwl4965_led_off_reg(struct iwl_priv *priv, int led_id)
+static int iwl_led_off_reg(struct iwl_priv *priv, int led_id)
 {
        IWL_DEBUG_LED(priv, "LED Reg off\n");
        iwl_write32(priv, CSR_LED_REG, CSR_LED_REG_TRUN_OFF);
@@ -171,7 +171,7 @@ static int iwl_led_associate(struct iwl_priv *priv, int led_id)
 {
        IWL_DEBUG_LED(priv, "Associated\n");
        priv->allow_blinking = 1;
-       return iwl4965_led_on_reg(priv, led_id);
+       return iwl_led_on_reg(priv, led_id);
 }
 static int iwl_led_disassociate(struct iwl_priv *priv, int led_id)
 {
@@ -264,13 +264,16 @@ static int iwl_leds_register_led(struct iwl_priv *priv, struct iwl_led *led,
 
 
 /*
- * calculate blink rate according to last 2 sec Tx/Rx activities
+ * calculate blink rate according to last second Tx/Rx activities
  */
 static int iwl_get_blink_rate(struct iwl_priv *priv)
 {
        int i;
-       u64 current_tpt = priv->tx_stats[2].bytes;
-       /* FIXME: + priv->rx_stats[2].bytes; */
+       /* count both tx and rx traffic to be able to
+        * handle traffic in either direction
+        */
+       u64 current_tpt = priv->tx_stats.data_bytes +
+                         priv->rx_stats.data_bytes;
        s64 tpt = current_tpt - priv->led_tpt;
 
        if (tpt < 0) /* wraparound */
@@ -314,7 +317,7 @@ void iwl_leds_background(struct iwl_priv *priv)
                priv->last_blink_time = 0;
                if (priv->last_blink_rate != IWL_SOLID_BLINK_IDX) {
                        priv->last_blink_rate = IWL_SOLID_BLINK_IDX;
-                       iwl4965_led_pattern(priv, IWL_LED_LINK,
+                       iwl_led_pattern(priv, IWL_LED_LINK,
                                            IWL_SOLID_BLINK_IDX);
                }
                return;
@@ -328,12 +331,11 @@ void iwl_leds_background(struct iwl_priv *priv)
 
        /* call only if blink rate change */
        if (blink_idx != priv->last_blink_rate)
-               iwl4965_led_pattern(priv, IWL_LED_LINK, blink_idx);
+               iwl_led_pattern(priv, IWL_LED_LINK, blink_idx);
 
        priv->last_blink_time = jiffies;
        priv->last_blink_rate = blink_idx;
 }
-EXPORT_SYMBOL(iwl_leds_background);
 
 /* Register all led handler */
 int iwl_leds_register(struct iwl_priv *priv)
@@ -351,8 +353,8 @@ int iwl_leds_register(struct iwl_priv *priv)
                 sizeof(priv->led[IWL_LED_TRG_RADIO].name), "iwl-%s::radio",
                 wiphy_name(priv->hw->wiphy));
 
-       priv->led[IWL_LED_TRG_RADIO].led_on = iwl4965_led_on_reg;
-       priv->led[IWL_LED_TRG_RADIO].led_off = iwl4965_led_off_reg;
+       priv->led[IWL_LED_TRG_RADIO].led_on = iwl_led_on_reg;
+       priv->led[IWL_LED_TRG_RADIO].led_off = iwl_led_off_reg;
        priv->led[IWL_LED_TRG_RADIO].led_pattern = NULL;
 
        ret = iwl_leds_register_led(priv, &priv->led[IWL_LED_TRG_RADIO],
@@ -386,7 +388,7 @@ int iwl_leds_register(struct iwl_priv *priv)
 
        priv->led[IWL_LED_TRG_RX].led_on = iwl_led_associated;
        priv->led[IWL_LED_TRG_RX].led_off = iwl_led_associated;
-       priv->led[IWL_LED_TRG_RX].led_pattern = iwl4965_led_pattern;
+       priv->led[IWL_LED_TRG_RX].led_pattern = iwl_led_pattern;
 
        if (ret)
                goto exit_fail;
@@ -401,7 +403,7 @@ int iwl_leds_register(struct iwl_priv *priv)
 
        priv->led[IWL_LED_TRG_TX].led_on = iwl_led_associated;
        priv->led[IWL_LED_TRG_TX].led_off = iwl_led_associated;
-       priv->led[IWL_LED_TRG_TX].led_pattern = iwl4965_led_pattern;
+       priv->led[IWL_LED_TRG_TX].led_pattern = iwl_led_pattern;
 
        if (ret)
                goto exit_fail;