diff options
Diffstat (limited to 'drivers/net/wireless/iwlwifi/mvm/time-event.c')
-rw-r--r-- | drivers/net/wireless/iwlwifi/mvm/time-event.c | 22 |
1 files changed, 15 insertions, 7 deletions
diff --git a/drivers/net/wireless/iwlwifi/mvm/time-event.c b/drivers/net/wireless/iwlwifi/mvm/time-event.c index f8d6f306dd76..8d179ab67cc2 100644 --- a/drivers/net/wireless/iwlwifi/mvm/time-event.c +++ b/drivers/net/wireless/iwlwifi/mvm/time-event.c | |||
@@ -197,6 +197,8 @@ iwl_mvm_te_handle_notify_csa(struct iwl_mvm *mvm, | |||
197 | struct iwl_time_event_notif *notif) | 197 | struct iwl_time_event_notif *notif) |
198 | { | 198 | { |
199 | if (!le32_to_cpu(notif->status)) { | 199 | if (!le32_to_cpu(notif->status)) { |
200 | if (te_data->vif->type == NL80211_IFTYPE_STATION) | ||
201 | ieee80211_connection_loss(te_data->vif); | ||
200 | IWL_DEBUG_TE(mvm, "CSA time event failed to start\n"); | 202 | IWL_DEBUG_TE(mvm, "CSA time event failed to start\n"); |
201 | iwl_mvm_te_clear_data(mvm, te_data); | 203 | iwl_mvm_te_clear_data(mvm, te_data); |
202 | return; | 204 | return; |
@@ -261,17 +263,23 @@ static void iwl_mvm_te_handle_notif(struct iwl_mvm *mvm, | |||
261 | "TE ended - current time %lu, estimated end %lu\n", | 263 | "TE ended - current time %lu, estimated end %lu\n", |
262 | jiffies, te_data->end_jiffies); | 264 | jiffies, te_data->end_jiffies); |
263 | 265 | ||
264 | if (te_data->vif->type == NL80211_IFTYPE_P2P_DEVICE) { | 266 | switch (te_data->vif->type) { |
267 | case NL80211_IFTYPE_P2P_DEVICE: | ||
265 | ieee80211_remain_on_channel_expired(mvm->hw); | 268 | ieee80211_remain_on_channel_expired(mvm->hw); |
266 | iwl_mvm_roc_finished(mvm); | 269 | iwl_mvm_roc_finished(mvm); |
270 | break; | ||
271 | case NL80211_IFTYPE_STATION: | ||
272 | /* | ||
273 | * By now, we should have finished association | ||
274 | * and know the dtim period. | ||
275 | */ | ||
276 | iwl_mvm_te_check_disconnect(mvm, te_data->vif, | ||
277 | "No association and the time event is over already..."); | ||
278 | break; | ||
279 | default: | ||
280 | break; | ||
267 | } | 281 | } |
268 | 282 | ||
269 | /* | ||
270 | * By now, we should have finished association | ||
271 | * and know the dtim period. | ||
272 | */ | ||
273 | iwl_mvm_te_check_disconnect(mvm, te_data->vif, | ||
274 | "No association and the time event is over already..."); | ||
275 | iwl_mvm_te_clear_data(mvm, te_data); | 283 | iwl_mvm_te_clear_data(mvm, te_data); |
276 | } else if (le32_to_cpu(notif->action) & TE_V2_NOTIF_HOST_EVENT_START) { | 284 | } else if (le32_to_cpu(notif->action) & TE_V2_NOTIF_HOST_EVENT_START) { |
277 | te_data->running = true; | 285 | te_data->running = true; |