Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6
This commit is contained in:
commit
badb02953a
|
@ -72,6 +72,7 @@ MODULE_FIRMWARE("b43/ucode11.fw");
|
||||||
MODULE_FIRMWARE("b43/ucode13.fw");
|
MODULE_FIRMWARE("b43/ucode13.fw");
|
||||||
MODULE_FIRMWARE("b43/ucode14.fw");
|
MODULE_FIRMWARE("b43/ucode14.fw");
|
||||||
MODULE_FIRMWARE("b43/ucode15.fw");
|
MODULE_FIRMWARE("b43/ucode15.fw");
|
||||||
|
MODULE_FIRMWARE("b43/ucode16_mimo.fw");
|
||||||
MODULE_FIRMWARE("b43/ucode5.fw");
|
MODULE_FIRMWARE("b43/ucode5.fw");
|
||||||
MODULE_FIRMWARE("b43/ucode9.fw");
|
MODULE_FIRMWARE("b43/ucode9.fw");
|
||||||
|
|
||||||
|
|
|
@ -316,12 +316,18 @@ int iwl4965_tx_skb(struct iwl_priv *priv, struct sk_buff *skb)
|
||||||
|
|
||||||
hdr_len = ieee80211_hdrlen(fc);
|
hdr_len = ieee80211_hdrlen(fc);
|
||||||
|
|
||||||
/* Find index into station table for destination station */
|
/* For management frames use broadcast id to do not break aggregation */
|
||||||
sta_id = iwl_legacy_sta_id_or_broadcast(priv, ctx, info->control.sta);
|
if (!ieee80211_is_data(fc))
|
||||||
if (sta_id == IWL_INVALID_STATION) {
|
sta_id = ctx->bcast_sta_id;
|
||||||
IWL_DEBUG_DROP(priv, "Dropping - INVALID STATION: %pM\n",
|
else {
|
||||||
hdr->addr1);
|
/* Find index into station table for destination station */
|
||||||
goto drop_unlock;
|
sta_id = iwl_legacy_sta_id_or_broadcast(priv, ctx, info->control.sta);
|
||||||
|
|
||||||
|
if (sta_id == IWL_INVALID_STATION) {
|
||||||
|
IWL_DEBUG_DROP(priv, "Dropping - INVALID STATION: %pM\n",
|
||||||
|
hdr->addr1);
|
||||||
|
goto drop_unlock;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
IWL_DEBUG_TX(priv, "station Id %d\n", sta_id);
|
IWL_DEBUG_TX(priv, "station Id %d\n", sta_id);
|
||||||
|
|
|
@ -48,8 +48,21 @@ module_param(led_mode, int, S_IRUGO);
|
||||||
MODULE_PARM_DESC(led_mode, "0=system default, "
|
MODULE_PARM_DESC(led_mode, "0=system default, "
|
||||||
"1=On(RF On)/Off(RF Off), 2=blinking");
|
"1=On(RF On)/Off(RF Off), 2=blinking");
|
||||||
|
|
||||||
|
/* Throughput OFF time(ms) ON time (ms)
|
||||||
|
* >300 25 25
|
||||||
|
* >200 to 300 40 40
|
||||||
|
* >100 to 200 55 55
|
||||||
|
* >70 to 100 65 65
|
||||||
|
* >50 to 70 75 75
|
||||||
|
* >20 to 50 85 85
|
||||||
|
* >10 to 20 95 95
|
||||||
|
* >5 to 10 110 110
|
||||||
|
* >1 to 5 130 130
|
||||||
|
* >0 to 1 167 167
|
||||||
|
* <=0 SOLID ON
|
||||||
|
*/
|
||||||
static const struct ieee80211_tpt_blink iwl_blink[] = {
|
static const struct ieee80211_tpt_blink iwl_blink[] = {
|
||||||
{ .throughput = 0 * 1024 - 1, .blink_time = 334 },
|
{ .throughput = 0, .blink_time = 334 },
|
||||||
{ .throughput = 1 * 1024 - 1, .blink_time = 260 },
|
{ .throughput = 1 * 1024 - 1, .blink_time = 260 },
|
||||||
{ .throughput = 5 * 1024 - 1, .blink_time = 220 },
|
{ .throughput = 5 * 1024 - 1, .blink_time = 220 },
|
||||||
{ .throughput = 10 * 1024 - 1, .blink_time = 190 },
|
{ .throughput = 10 * 1024 - 1, .blink_time = 190 },
|
||||||
|
@ -101,6 +114,11 @@ static int iwl_legacy_led_cmd(struct iwl_priv *priv,
|
||||||
if (priv->blink_on == on && priv->blink_off == off)
|
if (priv->blink_on == on && priv->blink_off == off)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
|
if (off == 0) {
|
||||||
|
/* led is SOLID_ON */
|
||||||
|
on = IWL_LED_SOLID;
|
||||||
|
}
|
||||||
|
|
||||||
IWL_DEBUG_LED(priv, "Led blink time compensation=%u\n",
|
IWL_DEBUG_LED(priv, "Led blink time compensation=%u\n",
|
||||||
priv->cfg->base_params->led_compensation);
|
priv->cfg->base_params->led_compensation);
|
||||||
led_cmd.on = iwl_legacy_blink_compensation(priv, on,
|
led_cmd.on = iwl_legacy_blink_compensation(priv, on,
|
||||||
|
|
|
@ -2984,15 +2984,15 @@ static void iwl4965_bg_txpower_work(struct work_struct *work)
|
||||||
struct iwl_priv *priv = container_of(work, struct iwl_priv,
|
struct iwl_priv *priv = container_of(work, struct iwl_priv,
|
||||||
txpower_work);
|
txpower_work);
|
||||||
|
|
||||||
|
mutex_lock(&priv->mutex);
|
||||||
|
|
||||||
/* If a scan happened to start before we got here
|
/* If a scan happened to start before we got here
|
||||||
* then just return; the statistics notification will
|
* then just return; the statistics notification will
|
||||||
* kick off another scheduled work to compensate for
|
* kick off another scheduled work to compensate for
|
||||||
* any temperature delta we missed here. */
|
* any temperature delta we missed here. */
|
||||||
if (test_bit(STATUS_EXIT_PENDING, &priv->status) ||
|
if (test_bit(STATUS_EXIT_PENDING, &priv->status) ||
|
||||||
test_bit(STATUS_SCANNING, &priv->status))
|
test_bit(STATUS_SCANNING, &priv->status))
|
||||||
return;
|
goto out;
|
||||||
|
|
||||||
mutex_lock(&priv->mutex);
|
|
||||||
|
|
||||||
/* Regardless of if we are associated, we must reconfigure the
|
/* Regardless of if we are associated, we must reconfigure the
|
||||||
* TX power since frames can be sent on non-radar channels while
|
* TX power since frames can be sent on non-radar channels while
|
||||||
|
@ -3002,7 +3002,7 @@ static void iwl4965_bg_txpower_work(struct work_struct *work)
|
||||||
/* Update last_temperature to keep is_calib_needed from running
|
/* Update last_temperature to keep is_calib_needed from running
|
||||||
* when it isn't needed... */
|
* when it isn't needed... */
|
||||||
priv->last_temperature = priv->temperature;
|
priv->last_temperature = priv->temperature;
|
||||||
|
out:
|
||||||
mutex_unlock(&priv->mutex);
|
mutex_unlock(&priv->mutex);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -568,12 +568,17 @@ int iwlagn_tx_skb(struct iwl_priv *priv, struct sk_buff *skb)
|
||||||
|
|
||||||
hdr_len = ieee80211_hdrlen(fc);
|
hdr_len = ieee80211_hdrlen(fc);
|
||||||
|
|
||||||
/* Find index into station table for destination station */
|
/* For management frames use broadcast id to do not break aggregation */
|
||||||
sta_id = iwl_sta_id_or_broadcast(priv, ctx, info->control.sta);
|
if (!ieee80211_is_data(fc))
|
||||||
if (sta_id == IWL_INVALID_STATION) {
|
sta_id = ctx->bcast_sta_id;
|
||||||
IWL_DEBUG_DROP(priv, "Dropping - INVALID STATION: %pM\n",
|
else {
|
||||||
hdr->addr1);
|
/* Find index into station table for destination station */
|
||||||
goto drop_unlock;
|
sta_id = iwl_sta_id_or_broadcast(priv, ctx, info->control.sta);
|
||||||
|
if (sta_id == IWL_INVALID_STATION) {
|
||||||
|
IWL_DEBUG_DROP(priv, "Dropping - INVALID STATION: %pM\n",
|
||||||
|
hdr->addr1);
|
||||||
|
goto drop_unlock;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
IWL_DEBUG_TX(priv, "station Id %d\n", sta_id);
|
IWL_DEBUG_TX(priv, "station Id %d\n", sta_id);
|
||||||
|
|
Loading…
Reference in New Issue