diff options
Diffstat (limited to 'drivers/net/wireless/mwifiex/sta_event.c')
-rw-r--r-- | drivers/net/wireless/mwifiex/sta_event.c | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/drivers/net/wireless/mwifiex/sta_event.c b/drivers/net/wireless/mwifiex/sta_event.c index b8c171df6223..80ffe7412496 100644 --- a/drivers/net/wireless/mwifiex/sta_event.c +++ b/drivers/net/wireless/mwifiex/sta_event.c | |||
@@ -90,6 +90,10 @@ mwifiex_reset_connect_state(struct mwifiex_private *priv, u16 reason_code) | |||
90 | priv->is_data_rate_auto = true; | 90 | priv->is_data_rate_auto = true; |
91 | priv->data_rate = 0; | 91 | priv->data_rate = 0; |
92 | 92 | ||
93 | if ((GET_BSS_ROLE(priv) == MWIFIEX_BSS_ROLE_STA || | ||
94 | GET_BSS_ROLE(priv) == MWIFIEX_BSS_ROLE_UAP) && priv->hist_data) | ||
95 | mwifiex_hist_data_reset(priv); | ||
96 | |||
93 | if (priv->bss_mode == NL80211_IFTYPE_ADHOC) { | 97 | if (priv->bss_mode == NL80211_IFTYPE_ADHOC) { |
94 | priv->adhoc_state = ADHOC_IDLE; | 98 | priv->adhoc_state = ADHOC_IDLE; |
95 | priv->adhoc_is_link_sensed = false; | 99 | priv->adhoc_is_link_sensed = false; |
@@ -308,6 +312,7 @@ int mwifiex_process_sta_event(struct mwifiex_private *priv) | |||
308 | adapter->ps_state = PS_STATE_AWAKE; | 312 | adapter->ps_state = PS_STATE_AWAKE; |
309 | adapter->pm_wakeup_card_req = false; | 313 | adapter->pm_wakeup_card_req = false; |
310 | adapter->pm_wakeup_fw_try = false; | 314 | adapter->pm_wakeup_fw_try = false; |
315 | del_timer_sync(&adapter->wakeup_timer); | ||
311 | break; | 316 | break; |
312 | } | 317 | } |
313 | if (!mwifiex_send_null_packet | 318 | if (!mwifiex_send_null_packet |
@@ -322,6 +327,7 @@ int mwifiex_process_sta_event(struct mwifiex_private *priv) | |||
322 | adapter->ps_state = PS_STATE_AWAKE; | 327 | adapter->ps_state = PS_STATE_AWAKE; |
323 | adapter->pm_wakeup_card_req = false; | 328 | adapter->pm_wakeup_card_req = false; |
324 | adapter->pm_wakeup_fw_try = false; | 329 | adapter->pm_wakeup_fw_try = false; |
330 | del_timer_sync(&adapter->wakeup_timer); | ||
325 | 331 | ||
326 | break; | 332 | break; |
327 | 333 | ||
@@ -480,7 +486,7 @@ int mwifiex_process_sta_event(struct mwifiex_private *priv) | |||
480 | 486 | ||
481 | case EVENT_REMAIN_ON_CHAN_EXPIRED: | 487 | case EVENT_REMAIN_ON_CHAN_EXPIRED: |
482 | dev_dbg(adapter->dev, "event: Remain on channel expired\n"); | 488 | dev_dbg(adapter->dev, "event: Remain on channel expired\n"); |
483 | cfg80211_remain_on_channel_expired(priv->wdev, | 489 | cfg80211_remain_on_channel_expired(&priv->wdev, |
484 | priv->roc_cfg.cookie, | 490 | priv->roc_cfg.cookie, |
485 | &priv->roc_cfg.chan, | 491 | &priv->roc_cfg.chan, |
486 | GFP_ATOMIC); | 492 | GFP_ATOMIC); |
@@ -509,6 +515,16 @@ int mwifiex_process_sta_event(struct mwifiex_private *priv) | |||
509 | mwifiex_parse_tx_status_event(priv, adapter->event_body); | 515 | mwifiex_parse_tx_status_event(priv, adapter->event_body); |
510 | break; | 516 | break; |
511 | 517 | ||
518 | case EVENT_CHANNEL_REPORT_RDY: | ||
519 | dev_dbg(adapter->dev, "event: Channel Report\n"); | ||
520 | ret = mwifiex_11h_handle_chanrpt_ready(priv, | ||
521 | adapter->event_skb); | ||
522 | break; | ||
523 | case EVENT_RADAR_DETECTED: | ||
524 | dev_dbg(adapter->dev, "event: Radar detected\n"); | ||
525 | ret = mwifiex_11h_handle_radar_detected(priv, | ||
526 | adapter->event_skb); | ||
527 | break; | ||
512 | default: | 528 | default: |
513 | dev_dbg(adapter->dev, "event: unknown event id: %#x\n", | 529 | dev_dbg(adapter->dev, "event: unknown event id: %#x\n", |
514 | eventcause); | 530 | eventcause); |