aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/iwlwifi/mvm/time-event.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/wireless/iwlwifi/mvm/time-event.c')
-rw-r--r--drivers/net/wireless/iwlwifi/mvm/time-event.c22
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;