Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6

+47 -17
+1
drivers/net/wireless/b43/main.c
··· 72 72 MODULE_FIRMWARE("b43/ucode13.fw"); 73 73 MODULE_FIRMWARE("b43/ucode14.fw"); 74 74 MODULE_FIRMWARE("b43/ucode15.fw"); 75 + MODULE_FIRMWARE("b43/ucode16_mimo.fw"); 75 76 MODULE_FIRMWARE("b43/ucode5.fw"); 76 77 MODULE_FIRMWARE("b43/ucode9.fw"); 77 78
+12 -6
drivers/net/wireless/iwlegacy/iwl-4965-tx.c
··· 316 316 317 317 hdr_len = ieee80211_hdrlen(fc); 318 318 319 - /* Find index into station table for destination station */ 320 - sta_id = iwl_legacy_sta_id_or_broadcast(priv, ctx, info->control.sta); 321 - if (sta_id == IWL_INVALID_STATION) { 322 - IWL_DEBUG_DROP(priv, "Dropping - INVALID STATION: %pM\n", 323 - hdr->addr1); 324 - goto drop_unlock; 319 + /* For management frames use broadcast id to do not break aggregation */ 320 + if (!ieee80211_is_data(fc)) 321 + sta_id = ctx->bcast_sta_id; 322 + else { 323 + /* Find index into station table for destination station */ 324 + sta_id = iwl_legacy_sta_id_or_broadcast(priv, ctx, info->control.sta); 325 + 326 + if (sta_id == IWL_INVALID_STATION) { 327 + IWL_DEBUG_DROP(priv, "Dropping - INVALID STATION: %pM\n", 328 + hdr->addr1); 329 + goto drop_unlock; 330 + } 325 331 } 326 332 327 333 IWL_DEBUG_TX(priv, "station Id %d\n", sta_id);
+19 -1
drivers/net/wireless/iwlegacy/iwl-led.c
··· 48 48 MODULE_PARM_DESC(led_mode, "0=system default, " 49 49 "1=On(RF On)/Off(RF Off), 2=blinking"); 50 50 51 + /* Throughput OFF time(ms) ON time (ms) 52 + * >300 25 25 53 + * >200 to 300 40 40 54 + * >100 to 200 55 55 55 + * >70 to 100 65 65 56 + * >50 to 70 75 75 57 + * >20 to 50 85 85 58 + * >10 to 20 95 95 59 + * >5 to 10 110 110 60 + * >1 to 5 130 130 61 + * >0 to 1 167 167 62 + * <=0 SOLID ON 63 + */ 51 64 static const struct ieee80211_tpt_blink iwl_blink[] = { 52 - { .throughput = 0 * 1024 - 1, .blink_time = 334 }, 65 + { .throughput = 0, .blink_time = 334 }, 53 66 { .throughput = 1 * 1024 - 1, .blink_time = 260 }, 54 67 { .throughput = 5 * 1024 - 1, .blink_time = 220 }, 55 68 { .throughput = 10 * 1024 - 1, .blink_time = 190 }, ··· 113 100 114 101 if (priv->blink_on == on && priv->blink_off == off) 115 102 return 0; 103 + 104 + if (off == 0) { 105 + /* led is SOLID_ON */ 106 + on = IWL_LED_SOLID; 107 + } 116 108 117 109 IWL_DEBUG_LED(priv, "Led blink time compensation=%u\n", 118 110 priv->cfg->base_params->led_compensation);
+4 -4
drivers/net/wireless/iwlegacy/iwl4965-base.c
··· 2984 2984 struct iwl_priv *priv = container_of(work, struct iwl_priv, 2985 2985 txpower_work); 2986 2986 2987 + mutex_lock(&priv->mutex); 2988 + 2987 2989 /* If a scan happened to start before we got here 2988 2990 * then just return; the statistics notification will 2989 2991 * kick off another scheduled work to compensate for 2990 2992 * any temperature delta we missed here. */ 2991 2993 if (test_bit(STATUS_EXIT_PENDING, &priv->status) || 2992 2994 test_bit(STATUS_SCANNING, &priv->status)) 2993 - return; 2994 - 2995 - mutex_lock(&priv->mutex); 2995 + goto out; 2996 2996 2997 2997 /* Regardless of if we are associated, we must reconfigure the 2998 2998 * TX power since frames can be sent on non-radar channels while ··· 3002 3002 /* Update last_temperature to keep is_calib_needed from running 3003 3003 * when it isn't needed... */ 3004 3004 priv->last_temperature = priv->temperature; 3005 - 3005 + out: 3006 3006 mutex_unlock(&priv->mutex); 3007 3007 } 3008 3008
+11 -6
drivers/net/wireless/iwlwifi/iwl-agn-tx.c
··· 568 568 569 569 hdr_len = ieee80211_hdrlen(fc); 570 570 571 - /* Find index into station table for destination station */ 572 - sta_id = iwl_sta_id_or_broadcast(priv, ctx, info->control.sta); 573 - if (sta_id == IWL_INVALID_STATION) { 574 - IWL_DEBUG_DROP(priv, "Dropping - INVALID STATION: %pM\n", 575 - hdr->addr1); 576 - goto drop_unlock; 571 + /* For management frames use broadcast id to do not break aggregation */ 572 + if (!ieee80211_is_data(fc)) 573 + sta_id = ctx->bcast_sta_id; 574 + else { 575 + /* Find index into station table for destination station */ 576 + sta_id = iwl_sta_id_or_broadcast(priv, ctx, info->control.sta); 577 + if (sta_id == IWL_INVALID_STATION) { 578 + IWL_DEBUG_DROP(priv, "Dropping - INVALID STATION: %pM\n", 579 + hdr->addr1); 580 + goto drop_unlock; 581 + } 577 582 } 578 583 579 584 IWL_DEBUG_TX(priv, "station Id %d\n", sta_id);