diff options
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-1000.c | 1 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-3945.c | 30 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-3945.h | 9 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-4965.c | 1 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-5000.c | 2 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-6000.c | 2 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-agn-lib.c | 9 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-agn.c | 6 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-agn.h | 4 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-core.c | 9 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-core.h | 2 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-sta.c | 7 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-sta.h | 1 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl3945-base.c | 11 |
14 files changed, 66 insertions, 28 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-1000.c b/drivers/net/wireless/iwlwifi/iwl-1000.c index 4d360d74b0cd..ebaf02d47e73 100644 --- a/drivers/net/wireless/iwlwifi/iwl-1000.c +++ b/drivers/net/wireless/iwlwifi/iwl-1000.c | |||
@@ -213,6 +213,7 @@ static struct iwl_lib_ops iwl1000_lib = { | |||
213 | .set_ct_kill = iwl1000_set_ct_threshold, | 213 | .set_ct_kill = iwl1000_set_ct_threshold, |
214 | }, | 214 | }, |
215 | .add_bcast_station = iwl_add_bcast_station, | 215 | .add_bcast_station = iwl_add_bcast_station, |
216 | .manage_ibss_station = iwlagn_manage_ibss_station, | ||
216 | .debugfs_ops = { | 217 | .debugfs_ops = { |
217 | .rx_stats_read = iwl_ucode_rx_stats_read, | 218 | .rx_stats_read = iwl_ucode_rx_stats_read, |
218 | .tx_stats_read = iwl_ucode_tx_stats_read, | 219 | .tx_stats_read = iwl_ucode_tx_stats_read, |
diff --git a/drivers/net/wireless/iwlwifi/iwl-3945.c b/drivers/net/wireless/iwlwifi/iwl-3945.c index 360781326cb7..1e9593968c36 100644 --- a/drivers/net/wireless/iwlwifi/iwl-3945.c +++ b/drivers/net/wireless/iwlwifi/iwl-3945.c | |||
@@ -884,7 +884,8 @@ void iwl3945_hw_build_tx_cmd_rate(struct iwl_priv *priv, | |||
884 | tx_cmd->supp_rates[1], tx_cmd->supp_rates[0]); | 884 | tx_cmd->supp_rates[1], tx_cmd->supp_rates[0]); |
885 | } | 885 | } |
886 | 886 | ||
887 | u8 iwl3945_sync_sta(struct iwl_priv *priv, int sta_id, u16 tx_rate, u8 flags) | 887 | static u8 iwl3945_sync_sta(struct iwl_priv *priv, int sta_id, |
888 | u16 tx_rate, u8 flags) | ||
888 | { | 889 | { |
889 | unsigned long flags_spin; | 890 | unsigned long flags_spin; |
890 | struct iwl_station_entry *station; | 891 | struct iwl_station_entry *station; |
@@ -2395,6 +2396,32 @@ static u16 iwl3945_build_addsta_hcmd(const struct iwl_addsta_cmd *cmd, u8 *data) | |||
2395 | return (u16)sizeof(struct iwl3945_addsta_cmd); | 2396 | return (u16)sizeof(struct iwl3945_addsta_cmd); |
2396 | } | 2397 | } |
2397 | 2398 | ||
2399 | static int iwl3945_manage_ibss_station(struct iwl_priv *priv, | ||
2400 | struct ieee80211_vif *vif, bool add) | ||
2401 | { | ||
2402 | int ret; | ||
2403 | |||
2404 | /* | ||
2405 | * NB: this assumes that the station it gets will be | ||
2406 | * IWL_STA_ID, which will happen but isn't obvious. | ||
2407 | */ | ||
2408 | |||
2409 | if (add) { | ||
2410 | ret = iwl_add_local_station(priv, vif->bss_conf.bssid, false); | ||
2411 | if (ret) | ||
2412 | return ret; | ||
2413 | |||
2414 | iwl3945_sync_sta(priv, IWL_STA_ID, | ||
2415 | (priv->band == IEEE80211_BAND_5GHZ) ? | ||
2416 | IWL_RATE_6M_PLCP : IWL_RATE_1M_PLCP, | ||
2417 | CMD_ASYNC); | ||
2418 | iwl3945_rate_scale_init(priv->hw, IWL_STA_ID); | ||
2419 | |||
2420 | return 0; | ||
2421 | } | ||
2422 | |||
2423 | return iwl_remove_station(priv, vif->bss_conf.bssid); | ||
2424 | } | ||
2398 | 2425 | ||
2399 | /** | 2426 | /** |
2400 | * iwl3945_init_hw_rate_table - Initialize the hardware rate fallback table | 2427 | * iwl3945_init_hw_rate_table - Initialize the hardware rate fallback table |
@@ -2802,6 +2829,7 @@ static struct iwl_lib_ops iwl3945_lib = { | |||
2802 | .post_associate = iwl3945_post_associate, | 2829 | .post_associate = iwl3945_post_associate, |
2803 | .isr = iwl_isr_legacy, | 2830 | .isr = iwl_isr_legacy, |
2804 | .config_ap = iwl3945_config_ap, | 2831 | .config_ap = iwl3945_config_ap, |
2832 | .manage_ibss_station = iwl3945_manage_ibss_station, | ||
2805 | .add_bcast_station = iwl3945_add_bcast_station, | 2833 | .add_bcast_station = iwl3945_add_bcast_station, |
2806 | 2834 | ||
2807 | .debugfs_ops = { | 2835 | .debugfs_ops = { |
diff --git a/drivers/net/wireless/iwlwifi/iwl-3945.h b/drivers/net/wireless/iwlwifi/iwl-3945.h index 643adb644bb8..cea824c15bc5 100644 --- a/drivers/net/wireless/iwlwifi/iwl-3945.h +++ b/drivers/net/wireless/iwlwifi/iwl-3945.h | |||
@@ -211,13 +211,6 @@ extern int iwl3945_dump_nic_event_log(struct iwl_priv *priv, bool full_log, | |||
211 | char **buf, bool display); | 211 | char **buf, bool display); |
212 | extern void iwl3945_dump_nic_error_log(struct iwl_priv *priv); | 212 | extern void iwl3945_dump_nic_error_log(struct iwl_priv *priv); |
213 | 213 | ||
214 | /* | ||
215 | * Currently used by iwl-3945-rs... look at restructuring so that it doesn't | ||
216 | * call this... todo... fix that. | ||
217 | */ | ||
218 | extern u8 iwl3945_sync_station(struct iwl_priv *priv, int sta_id, | ||
219 | u16 tx_rate, u8 flags); | ||
220 | |||
221 | /****************************************************************************** | 214 | /****************************************************************************** |
222 | * | 215 | * |
223 | * Functions implemented in iwl-[34]*.c which are forward declared here | 216 | * Functions implemented in iwl-[34]*.c which are forward declared here |
@@ -288,8 +281,6 @@ extern __le32 iwl3945_get_antenna_flags(const struct iwl_priv *priv); | |||
288 | extern int iwl3945_init_hw_rate_table(struct iwl_priv *priv); | 281 | extern int iwl3945_init_hw_rate_table(struct iwl_priv *priv); |
289 | extern void iwl3945_reg_txpower_periodic(struct iwl_priv *priv); | 282 | extern void iwl3945_reg_txpower_periodic(struct iwl_priv *priv); |
290 | extern int iwl3945_txpower_set_from_eeprom(struct iwl_priv *priv); | 283 | extern int iwl3945_txpower_set_from_eeprom(struct iwl_priv *priv); |
291 | extern u8 iwl3945_sync_sta(struct iwl_priv *priv, int sta_id, | ||
292 | u16 tx_rate, u8 flags); | ||
293 | 284 | ||
294 | extern const struct iwl_channel_info *iwl3945_get_channel_info( | 285 | extern const struct iwl_channel_info *iwl3945_get_channel_info( |
295 | const struct iwl_priv *priv, enum ieee80211_band band, u16 channel); | 286 | const struct iwl_priv *priv, enum ieee80211_band band, u16 channel); |
diff --git a/drivers/net/wireless/iwlwifi/iwl-4965.c b/drivers/net/wireless/iwlwifi/iwl-4965.c index 6b0ae74546dd..5904a1beac4d 100644 --- a/drivers/net/wireless/iwlwifi/iwl-4965.c +++ b/drivers/net/wireless/iwlwifi/iwl-4965.c | |||
@@ -2219,6 +2219,7 @@ static struct iwl_lib_ops iwl4965_lib = { | |||
2219 | .set_ct_kill = iwl4965_set_ct_threshold, | 2219 | .set_ct_kill = iwl4965_set_ct_threshold, |
2220 | }, | 2220 | }, |
2221 | .add_bcast_station = iwl_add_bcast_station, | 2221 | .add_bcast_station = iwl_add_bcast_station, |
2222 | .manage_ibss_station = iwlagn_manage_ibss_station, | ||
2222 | .debugfs_ops = { | 2223 | .debugfs_ops = { |
2223 | .rx_stats_read = iwl_ucode_rx_stats_read, | 2224 | .rx_stats_read = iwl_ucode_rx_stats_read, |
2224 | .tx_stats_read = iwl_ucode_tx_stats_read, | 2225 | .tx_stats_read = iwl_ucode_tx_stats_read, |
diff --git a/drivers/net/wireless/iwlwifi/iwl-5000.c b/drivers/net/wireless/iwlwifi/iwl-5000.c index 8ed616e59631..bde0f18cbae9 100644 --- a/drivers/net/wireless/iwlwifi/iwl-5000.c +++ b/drivers/net/wireless/iwlwifi/iwl-5000.c | |||
@@ -352,6 +352,7 @@ static struct iwl_lib_ops iwl5000_lib = { | |||
352 | .set_ct_kill = iwl5000_set_ct_threshold, | 352 | .set_ct_kill = iwl5000_set_ct_threshold, |
353 | }, | 353 | }, |
354 | .add_bcast_station = iwl_add_bcast_station, | 354 | .add_bcast_station = iwl_add_bcast_station, |
355 | .manage_ibss_station = iwlagn_manage_ibss_station, | ||
355 | .debugfs_ops = { | 356 | .debugfs_ops = { |
356 | .rx_stats_read = iwl_ucode_rx_stats_read, | 357 | .rx_stats_read = iwl_ucode_rx_stats_read, |
357 | .tx_stats_read = iwl_ucode_tx_stats_read, | 358 | .tx_stats_read = iwl_ucode_tx_stats_read, |
@@ -414,6 +415,7 @@ static struct iwl_lib_ops iwl5150_lib = { | |||
414 | .set_ct_kill = iwl5150_set_ct_threshold, | 415 | .set_ct_kill = iwl5150_set_ct_threshold, |
415 | }, | 416 | }, |
416 | .add_bcast_station = iwl_add_bcast_station, | 417 | .add_bcast_station = iwl_add_bcast_station, |
418 | .manage_ibss_station = iwlagn_manage_ibss_station, | ||
417 | .debugfs_ops = { | 419 | .debugfs_ops = { |
418 | .rx_stats_read = iwl_ucode_rx_stats_read, | 420 | .rx_stats_read = iwl_ucode_rx_stats_read, |
419 | .tx_stats_read = iwl_ucode_tx_stats_read, | 421 | .tx_stats_read = iwl_ucode_tx_stats_read, |
diff --git a/drivers/net/wireless/iwlwifi/iwl-6000.c b/drivers/net/wireless/iwlwifi/iwl-6000.c index b69fa36fb87a..5f0f58693104 100644 --- a/drivers/net/wireless/iwlwifi/iwl-6000.c +++ b/drivers/net/wireless/iwlwifi/iwl-6000.c | |||
@@ -318,6 +318,7 @@ static struct iwl_lib_ops iwl6000_lib = { | |||
318 | .set_ct_kill = iwl6000_set_ct_threshold, | 318 | .set_ct_kill = iwl6000_set_ct_threshold, |
319 | }, | 319 | }, |
320 | .add_bcast_station = iwl_add_bcast_station, | 320 | .add_bcast_station = iwl_add_bcast_station, |
321 | .manage_ibss_station = iwlagn_manage_ibss_station, | ||
321 | .debugfs_ops = { | 322 | .debugfs_ops = { |
322 | .rx_stats_read = iwl_ucode_rx_stats_read, | 323 | .rx_stats_read = iwl_ucode_rx_stats_read, |
323 | .tx_stats_read = iwl_ucode_tx_stats_read, | 324 | .tx_stats_read = iwl_ucode_tx_stats_read, |
@@ -391,6 +392,7 @@ static struct iwl_lib_ops iwl6050_lib = { | |||
391 | .set_calib_version = iwl6050_set_calib_version, | 392 | .set_calib_version = iwl6050_set_calib_version, |
392 | }, | 393 | }, |
393 | .add_bcast_station = iwl_add_bcast_station, | 394 | .add_bcast_station = iwl_add_bcast_station, |
395 | .manage_ibss_station = iwlagn_manage_ibss_station, | ||
394 | .debugfs_ops = { | 396 | .debugfs_ops = { |
395 | .rx_stats_read = iwl_ucode_rx_stats_read, | 397 | .rx_stats_read = iwl_ucode_rx_stats_read, |
396 | .tx_stats_read = iwl_ucode_tx_stats_read, | 398 | .tx_stats_read = iwl_ucode_tx_stats_read, |
diff --git a/drivers/net/wireless/iwlwifi/iwl-agn-lib.c b/drivers/net/wireless/iwlwifi/iwl-agn-lib.c index a27347425968..50ff313c549c 100644 --- a/drivers/net/wireless/iwlwifi/iwl-agn-lib.c +++ b/drivers/net/wireless/iwlwifi/iwl-agn-lib.c | |||
@@ -38,6 +38,7 @@ | |||
38 | #include "iwl-helpers.h" | 38 | #include "iwl-helpers.h" |
39 | #include "iwl-agn-hw.h" | 39 | #include "iwl-agn-hw.h" |
40 | #include "iwl-agn.h" | 40 | #include "iwl-agn.h" |
41 | #include "iwl-sta.h" | ||
41 | 42 | ||
42 | static inline u32 iwlagn_get_scd_ssn(struct iwl5000_tx_resp *tx_resp) | 43 | static inline u32 iwlagn_get_scd_ssn(struct iwl5000_tx_resp *tx_resp) |
43 | { | 44 | { |
@@ -1513,3 +1514,11 @@ void iwlagn_request_scan(struct iwl_priv *priv) | |||
1513 | /* inform mac80211 scan aborted */ | 1514 | /* inform mac80211 scan aborted */ |
1514 | queue_work(priv->workqueue, &priv->scan_completed); | 1515 | queue_work(priv->workqueue, &priv->scan_completed); |
1515 | } | 1516 | } |
1517 | |||
1518 | int iwlagn_manage_ibss_station(struct iwl_priv *priv, | ||
1519 | struct ieee80211_vif *vif, bool add) | ||
1520 | { | ||
1521 | if (add) | ||
1522 | return iwl_add_local_station(priv, vif->bss_conf.bssid, true); | ||
1523 | return iwl_remove_station(priv, vif->bss_conf.bssid); | ||
1524 | } | ||
diff --git a/drivers/net/wireless/iwlwifi/iwl-agn.c b/drivers/net/wireless/iwlwifi/iwl-agn.c index 5cf38227c6c7..dd1324d6f4c0 100644 --- a/drivers/net/wireless/iwlwifi/iwl-agn.c +++ b/drivers/net/wireless/iwlwifi/iwl-agn.c | |||
@@ -2606,17 +2606,11 @@ void iwl_post_associate(struct iwl_priv *priv) | |||
2606 | switch (priv->iw_mode) { | 2606 | switch (priv->iw_mode) { |
2607 | case NL80211_IFTYPE_STATION: | 2607 | case NL80211_IFTYPE_STATION: |
2608 | break; | 2608 | break; |
2609 | |||
2610 | case NL80211_IFTYPE_ADHOC: | 2609 | case NL80211_IFTYPE_ADHOC: |
2611 | |||
2612 | /* assume default assoc id */ | 2610 | /* assume default assoc id */ |
2613 | priv->assoc_id = 1; | 2611 | priv->assoc_id = 1; |
2614 | |||
2615 | iwl_add_local_station(priv, priv->bssid, true); | ||
2616 | iwl_send_beacon_cmd(priv); | 2612 | iwl_send_beacon_cmd(priv); |
2617 | |||
2618 | break; | 2613 | break; |
2619 | |||
2620 | default: | 2614 | default: |
2621 | IWL_ERR(priv, "%s Should not be called in %d mode\n", | 2615 | IWL_ERR(priv, "%s Should not be called in %d mode\n", |
2622 | __func__, priv->iw_mode); | 2616 | __func__, priv->iw_mode); |
diff --git a/drivers/net/wireless/iwlwifi/iwl-agn.h b/drivers/net/wireless/iwlwifi/iwl-agn.h index cfee9994383e..a9ba9fc6740a 100644 --- a/drivers/net/wireless/iwlwifi/iwl-agn.h +++ b/drivers/net/wireless/iwlwifi/iwl-agn.h | |||
@@ -174,4 +174,8 @@ static inline bool iwl_is_tx_success(u32 status) | |||
174 | /* scan */ | 174 | /* scan */ |
175 | void iwlagn_request_scan(struct iwl_priv *priv); | 175 | void iwlagn_request_scan(struct iwl_priv *priv); |
176 | 176 | ||
177 | /* station mgmt */ | ||
178 | int iwlagn_manage_ibss_station(struct iwl_priv *priv, | ||
179 | struct ieee80211_vif *vif, bool add); | ||
180 | |||
177 | #endif /* __iwl_agn_h__ */ | 181 | #endif /* __iwl_agn_h__ */ |
diff --git a/drivers/net/wireless/iwlwifi/iwl-core.c b/drivers/net/wireless/iwlwifi/iwl-core.c index e8c9bcafe564..5c6f25462a09 100644 --- a/drivers/net/wireless/iwlwifi/iwl-core.c +++ b/drivers/net/wireless/iwlwifi/iwl-core.c | |||
@@ -1960,6 +1960,15 @@ void iwl_bss_info_changed(struct ieee80211_hw *hw, | |||
1960 | iwl_set_no_assoc(priv); | 1960 | iwl_set_no_assoc(priv); |
1961 | } | 1961 | } |
1962 | 1962 | ||
1963 | if (changes & BSS_CHANGED_IBSS) { | ||
1964 | ret = priv->cfg->ops->lib->manage_ibss_station(priv, vif, | ||
1965 | bss_conf->ibss_joined); | ||
1966 | if (ret) | ||
1967 | IWL_ERR(priv, "failed to %s IBSS station %pM\n", | ||
1968 | bss_conf->ibss_joined ? "add" : "remove", | ||
1969 | bss_conf->bssid); | ||
1970 | } | ||
1971 | |||
1963 | mutex_unlock(&priv->mutex); | 1972 | mutex_unlock(&priv->mutex); |
1964 | 1973 | ||
1965 | IWL_DEBUG_MAC80211(priv, "leave\n"); | 1974 | IWL_DEBUG_MAC80211(priv, "leave\n"); |
diff --git a/drivers/net/wireless/iwlwifi/iwl-core.h b/drivers/net/wireless/iwlwifi/iwl-core.h index 8d53fc973a43..0fa99650f75a 100644 --- a/drivers/net/wireless/iwlwifi/iwl-core.h +++ b/drivers/net/wireless/iwlwifi/iwl-core.h | |||
@@ -202,6 +202,8 @@ struct iwl_lib_ops { | |||
202 | struct iwl_temp_ops temp_ops; | 202 | struct iwl_temp_ops temp_ops; |
203 | /* station management */ | 203 | /* station management */ |
204 | int (*add_bcast_station)(struct iwl_priv *priv); | 204 | int (*add_bcast_station)(struct iwl_priv *priv); |
205 | int (*manage_ibss_station)(struct iwl_priv *priv, | ||
206 | struct ieee80211_vif *vif, bool add); | ||
205 | /* recover from tx queue stall */ | 207 | /* recover from tx queue stall */ |
206 | void (*recover_from_tx_stall)(unsigned long data); | 208 | void (*recover_from_tx_stall)(unsigned long data); |
207 | /* check for plcp health */ | 209 | /* check for plcp health */ |
diff --git a/drivers/net/wireless/iwlwifi/iwl-sta.c b/drivers/net/wireless/iwlwifi/iwl-sta.c index 354eb13a8515..7da8edeb5256 100644 --- a/drivers/net/wireless/iwlwifi/iwl-sta.c +++ b/drivers/net/wireless/iwlwifi/iwl-sta.c | |||
@@ -596,7 +596,7 @@ static int iwl_send_remove_station(struct iwl_priv *priv, | |||
596 | /** | 596 | /** |
597 | * iwl_remove_station - Remove driver's knowledge of station. | 597 | * iwl_remove_station - Remove driver's knowledge of station. |
598 | */ | 598 | */ |
599 | static int iwl_remove_station(struct iwl_priv *priv, const u8 *addr) | 599 | int iwl_remove_station(struct iwl_priv *priv, const u8 *addr) |
600 | { | 600 | { |
601 | int sta_id = IWL_INVALID_STATION; | 601 | int sta_id = IWL_INVALID_STATION; |
602 | int i, ret = -EINVAL; | 602 | int i, ret = -EINVAL; |
@@ -647,6 +647,10 @@ static int iwl_remove_station(struct iwl_priv *priv, const u8 *addr) | |||
647 | goto out; | 647 | goto out; |
648 | } | 648 | } |
649 | 649 | ||
650 | if (priv->stations[sta_id].used & IWL_STA_LOCAL) { | ||
651 | kfree(priv->stations[sta_id].lq); | ||
652 | priv->stations[sta_id].lq = NULL; | ||
653 | } | ||
650 | 654 | ||
651 | priv->stations[sta_id].used &= ~IWL_STA_DRIVER_ACTIVE; | 655 | priv->stations[sta_id].used &= ~IWL_STA_DRIVER_ACTIVE; |
652 | 656 | ||
@@ -663,6 +667,7 @@ out: | |||
663 | spin_unlock_irqrestore(&priv->sta_lock, flags); | 667 | spin_unlock_irqrestore(&priv->sta_lock, flags); |
664 | return ret; | 668 | return ret; |
665 | } | 669 | } |
670 | EXPORT_SYMBOL_GPL(iwl_remove_station); | ||
666 | 671 | ||
667 | /** | 672 | /** |
668 | * iwl_clear_ucode_stations() - clear entire station table driver and/or ucode | 673 | * iwl_clear_ucode_stations() - clear entire station table driver and/or ucode |
diff --git a/drivers/net/wireless/iwlwifi/iwl-sta.h b/drivers/net/wireless/iwlwifi/iwl-sta.h index b0ed2eb931fd..9a869f1031fd 100644 --- a/drivers/net/wireless/iwlwifi/iwl-sta.h +++ b/drivers/net/wireless/iwlwifi/iwl-sta.h | |||
@@ -74,6 +74,7 @@ int iwl_add_station_common(struct iwl_priv *priv, const u8 *addr, | |||
74 | bool is_ap, | 74 | bool is_ap, |
75 | struct ieee80211_sta_ht_cap *ht_info, | 75 | struct ieee80211_sta_ht_cap *ht_info, |
76 | u8 *sta_id_r); | 76 | u8 *sta_id_r); |
77 | int iwl_remove_station(struct iwl_priv *priv, const u8 *addr); | ||
77 | int iwl_mac_sta_remove(struct ieee80211_hw *hw, struct ieee80211_vif *vif, | 78 | int iwl_mac_sta_remove(struct ieee80211_hw *hw, struct ieee80211_vif *vif, |
78 | struct ieee80211_sta *sta); | 79 | struct ieee80211_sta *sta); |
79 | void iwl_sta_tx_modify_enable_tid(struct iwl_priv *priv, int sta_id, int tid); | 80 | void iwl_sta_tx_modify_enable_tid(struct iwl_priv *priv, int sta_id, int tid); |
diff --git a/drivers/net/wireless/iwlwifi/iwl3945-base.c b/drivers/net/wireless/iwlwifi/iwl3945-base.c index 4f20cca06fb0..9486b3248245 100644 --- a/drivers/net/wireless/iwlwifi/iwl3945-base.c +++ b/drivers/net/wireless/iwlwifi/iwl3945-base.c | |||
@@ -3103,21 +3103,10 @@ void iwl3945_post_associate(struct iwl_priv *priv) | |||
3103 | case NL80211_IFTYPE_STATION: | 3103 | case NL80211_IFTYPE_STATION: |
3104 | iwl3945_rate_scale_init(priv->hw, IWL_AP_ID); | 3104 | iwl3945_rate_scale_init(priv->hw, IWL_AP_ID); |
3105 | break; | 3105 | break; |
3106 | |||
3107 | case NL80211_IFTYPE_ADHOC: | 3106 | case NL80211_IFTYPE_ADHOC: |
3108 | |||
3109 | priv->assoc_id = 1; | 3107 | priv->assoc_id = 1; |
3110 | iwl_add_local_station(priv, priv->bssid, false); | ||
3111 | iwl3945_sync_sta(priv, IWL_STA_ID, | ||
3112 | (priv->band == IEEE80211_BAND_5GHZ) ? | ||
3113 | IWL_RATE_6M_PLCP : IWL_RATE_1M_PLCP, | ||
3114 | CMD_ASYNC); | ||
3115 | iwl3945_rate_scale_init(priv->hw, IWL_STA_ID); | ||
3116 | |||
3117 | iwl3945_send_beacon_cmd(priv); | 3108 | iwl3945_send_beacon_cmd(priv); |
3118 | |||
3119 | break; | 3109 | break; |
3120 | |||
3121 | default: | 3110 | default: |
3122 | IWL_ERR(priv, "%s Should not be called in %d mode\n", | 3111 | IWL_ERR(priv, "%s Should not be called in %d mode\n", |
3123 | __func__, priv->iw_mode); | 3112 | __func__, priv->iw_mode); |