diff options
Diffstat (limited to 'drivers/net/wireless')
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-agn-hcmd.c | 2 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-agn.c | 15 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-core.c | 2 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-dev.h | 2 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl3945-base.c | 4 |
5 files changed, 18 insertions, 7 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-agn-hcmd.c b/drivers/net/wireless/iwlwifi/iwl-agn-hcmd.c index 3e5069943dde..2d4cdb027aa6 100644 --- a/drivers/net/wireless/iwlwifi/iwl-agn-hcmd.c +++ b/drivers/net/wireless/iwlwifi/iwl-agn-hcmd.c | |||
@@ -77,7 +77,7 @@ int iwlagn_send_rxon_assoc(struct iwl_priv *priv, | |||
77 | ctx->staging.ofdm_ht_triple_stream_basic_rates; | 77 | ctx->staging.ofdm_ht_triple_stream_basic_rates; |
78 | rxon_assoc.acquisition_data = ctx->staging.acquisition_data; | 78 | rxon_assoc.acquisition_data = ctx->staging.acquisition_data; |
79 | 79 | ||
80 | ret = iwl_send_cmd_pdu_async(priv, REPLY_RXON_ASSOC, | 80 | ret = iwl_send_cmd_pdu_async(priv, ctx->rxon_assoc_cmd, |
81 | sizeof(rxon_assoc), &rxon_assoc, NULL); | 81 | sizeof(rxon_assoc), &rxon_assoc, NULL); |
82 | if (ret) | 82 | if (ret) |
83 | return ret; | 83 | return ret; |
diff --git a/drivers/net/wireless/iwlwifi/iwl-agn.c b/drivers/net/wireless/iwlwifi/iwl-agn.c index 23db6c3e9aee..d3714f076a0c 100644 --- a/drivers/net/wireless/iwlwifi/iwl-agn.c +++ b/drivers/net/wireless/iwlwifi/iwl-agn.c | |||
@@ -152,7 +152,7 @@ int iwl_commit_rxon(struct iwl_priv *priv, struct iwl_rxon_context *ctx) | |||
152 | IWL_DEBUG_INFO(priv, "Toggling associated bit on current RXON\n"); | 152 | IWL_DEBUG_INFO(priv, "Toggling associated bit on current RXON\n"); |
153 | active_rxon->filter_flags &= ~RXON_FILTER_ASSOC_MSK; | 153 | active_rxon->filter_flags &= ~RXON_FILTER_ASSOC_MSK; |
154 | 154 | ||
155 | ret = iwl_send_cmd_pdu(priv, REPLY_RXON, | 155 | ret = iwl_send_cmd_pdu(priv, ctx->rxon_cmd, |
156 | sizeof(struct iwl_rxon_cmd), | 156 | sizeof(struct iwl_rxon_cmd), |
157 | active_rxon); | 157 | active_rxon); |
158 | 158 | ||
@@ -187,7 +187,7 @@ int iwl_commit_rxon(struct iwl_priv *priv, struct iwl_rxon_context *ctx) | |||
187 | * stations is needed after it (the RXON command) completes | 187 | * stations is needed after it (the RXON command) completes |
188 | */ | 188 | */ |
189 | if (!new_assoc) { | 189 | if (!new_assoc) { |
190 | ret = iwl_send_cmd_pdu(priv, REPLY_RXON, | 190 | ret = iwl_send_cmd_pdu(priv, ctx->rxon_cmd, |
191 | sizeof(struct iwl_rxon_cmd), &ctx->staging); | 191 | sizeof(struct iwl_rxon_cmd), &ctx->staging); |
192 | if (ret) { | 192 | if (ret) { |
193 | IWL_ERR(priv, "Error setting new RXON (%d)\n", ret); | 193 | IWL_ERR(priv, "Error setting new RXON (%d)\n", ret); |
@@ -209,7 +209,7 @@ int iwl_commit_rxon(struct iwl_priv *priv, struct iwl_rxon_context *ctx) | |||
209 | /* Apply the new configuration | 209 | /* Apply the new configuration |
210 | * RXON assoc doesn't clear the station table in uCode, | 210 | * RXON assoc doesn't clear the station table in uCode, |
211 | */ | 211 | */ |
212 | ret = iwl_send_cmd_pdu(priv, REPLY_RXON, | 212 | ret = iwl_send_cmd_pdu(priv, ctx->rxon_cmd, |
213 | sizeof(struct iwl_rxon_cmd), &ctx->staging); | 213 | sizeof(struct iwl_rxon_cmd), &ctx->staging); |
214 | if (ret) { | 214 | if (ret) { |
215 | IWL_ERR(priv, "Error setting new RXON (%d)\n", ret); | 215 | IWL_ERR(priv, "Error setting new RXON (%d)\n", ret); |
@@ -3244,7 +3244,7 @@ void iwl_post_associate(struct iwl_priv *priv, struct ieee80211_vif *vif) | |||
3244 | 3244 | ||
3245 | ret = iwl_send_rxon_timing(priv, vif); | 3245 | ret = iwl_send_rxon_timing(priv, vif); |
3246 | if (ret) | 3246 | if (ret) |
3247 | IWL_WARN(priv, "REPLY_RXON_TIMING failed - " | 3247 | IWL_WARN(priv, "RXON timing - " |
3248 | "Attempting to continue.\n"); | 3248 | "Attempting to continue.\n"); |
3249 | 3249 | ||
3250 | ctx->staging.filter_flags |= RXON_FILTER_ASSOC_MSK; | 3250 | ctx->staging.filter_flags |= RXON_FILTER_ASSOC_MSK; |
@@ -3481,7 +3481,7 @@ void iwl_config_ap(struct iwl_priv *priv, struct ieee80211_vif *vif) | |||
3481 | /* RXON Timing */ | 3481 | /* RXON Timing */ |
3482 | ret = iwl_send_rxon_timing(priv, vif); | 3482 | ret = iwl_send_rxon_timing(priv, vif); |
3483 | if (ret) | 3483 | if (ret) |
3484 | IWL_WARN(priv, "REPLY_RXON_TIMING failed - " | 3484 | IWL_WARN(priv, "RXON timing failed - " |
3485 | "Attempting to continue.\n"); | 3485 | "Attempting to continue.\n"); |
3486 | 3486 | ||
3487 | /* AP has all antennas */ | 3487 | /* AP has all antennas */ |
@@ -4200,6 +4200,11 @@ static int iwl_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent) | |||
4200 | for (i = 0; i < NUM_IWL_RXON_CTX; i++) | 4200 | for (i = 0; i < NUM_IWL_RXON_CTX; i++) |
4201 | priv->contexts[i].ctxid = i; | 4201 | priv->contexts[i].ctxid = i; |
4202 | 4202 | ||
4203 | priv->contexts[IWL_RXON_CTX_BSS].rxon_cmd = REPLY_RXON; | ||
4204 | priv->contexts[IWL_RXON_CTX_BSS].rxon_timing_cmd = REPLY_RXON_TIMING; | ||
4205 | priv->contexts[IWL_RXON_CTX_BSS].rxon_assoc_cmd = REPLY_RXON_ASSOC; | ||
4206 | BUILD_BUG_ON(NUM_IWL_RXON_CTX != 1); | ||
4207 | |||
4203 | SET_IEEE80211_DEV(hw, &pdev->dev); | 4208 | SET_IEEE80211_DEV(hw, &pdev->dev); |
4204 | 4209 | ||
4205 | IWL_DEBUG_INFO(priv, "*** LOAD DRIVER ***\n"); | 4210 | IWL_DEBUG_INFO(priv, "*** LOAD DRIVER ***\n"); |
diff --git a/drivers/net/wireless/iwlwifi/iwl-core.c b/drivers/net/wireless/iwlwifi/iwl-core.c index f7bfe59c0ca8..a145d17cd943 100644 --- a/drivers/net/wireless/iwlwifi/iwl-core.c +++ b/drivers/net/wireless/iwlwifi/iwl-core.c | |||
@@ -545,7 +545,7 @@ int iwl_send_rxon_timing(struct iwl_priv *priv, struct ieee80211_vif *vif) | |||
545 | le32_to_cpu(ctx->timing.beacon_init_val), | 545 | le32_to_cpu(ctx->timing.beacon_init_val), |
546 | le16_to_cpu(ctx->timing.atim_window)); | 546 | le16_to_cpu(ctx->timing.atim_window)); |
547 | 547 | ||
548 | return iwl_send_cmd_pdu(priv, REPLY_RXON_TIMING, | 548 | return iwl_send_cmd_pdu(priv, ctx->rxon_timing_cmd, |
549 | sizeof(ctx->timing), &ctx->timing); | 549 | sizeof(ctx->timing), &ctx->timing); |
550 | } | 550 | } |
551 | EXPORT_SYMBOL(iwl_send_rxon_timing); | 551 | EXPORT_SYMBOL(iwl_send_rxon_timing); |
diff --git a/drivers/net/wireless/iwlwifi/iwl-dev.h b/drivers/net/wireless/iwlwifi/iwl-dev.h index da54bd53c99d..6a7e9ff4a88c 100644 --- a/drivers/net/wireless/iwlwifi/iwl-dev.h +++ b/drivers/net/wireless/iwlwifi/iwl-dev.h | |||
@@ -1126,6 +1126,8 @@ struct iwl_rxon_context { | |||
1126 | struct iwl_rxon_time_cmd timing; | 1126 | struct iwl_rxon_time_cmd timing; |
1127 | 1127 | ||
1128 | u8 bcast_sta_id; | 1128 | u8 bcast_sta_id; |
1129 | |||
1130 | u8 rxon_cmd, rxon_assoc_cmd, rxon_timing_cmd; | ||
1129 | }; | 1131 | }; |
1130 | 1132 | ||
1131 | struct iwl_priv { | 1133 | struct iwl_priv { |
diff --git a/drivers/net/wireless/iwlwifi/iwl3945-base.c b/drivers/net/wireless/iwlwifi/iwl3945-base.c index 630b8d641720..4321d970d58d 100644 --- a/drivers/net/wireless/iwlwifi/iwl3945-base.c +++ b/drivers/net/wireless/iwlwifi/iwl3945-base.c | |||
@@ -4013,6 +4013,10 @@ static int iwl3945_pci_probe(struct pci_dev *pdev, const struct pci_device_id *e | |||
4013 | for (i = 0; i < NUM_IWL_RXON_CTX; i++) | 4013 | for (i = 0; i < NUM_IWL_RXON_CTX; i++) |
4014 | priv->contexts[i].ctxid = i; | 4014 | priv->contexts[i].ctxid = i; |
4015 | 4015 | ||
4016 | priv->contexts[IWL_RXON_CTX_BSS].rxon_cmd = REPLY_RXON; | ||
4017 | priv->contexts[IWL_RXON_CTX_BSS].rxon_timing_cmd = REPLY_RXON_TIMING; | ||
4018 | priv->contexts[IWL_RXON_CTX_BSS].rxon_assoc_cmd = REPLY_RXON_ASSOC; | ||
4019 | |||
4016 | /* | 4020 | /* |
4017 | * Disabling hardware scan means that mac80211 will perform scans | 4021 | * Disabling hardware scan means that mac80211 will perform scans |
4018 | * "the hard way", rather than using device's scan. | 4022 | * "the hard way", rather than using device's scan. |