iwlwifi: mvm: add triggers for MLME events
authorMordechay Goodstein <mordechay.goodstein@intel.com>
Sun, 31 Jan 2021 18:22:02 +0000 (20:22 +0200)
committerLuca Coelho <luciano.coelho@intel.com>
Fri, 5 Feb 2021 09:57:41 +0000 (11:57 +0200)
For debug we add auth/assoc failed event and disconnect event.

Signed-off-by: Mordechay Goodstein <mordechay.goodstein@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Link: https://lore.kernel.org/r/iwlwifi.20210131201907.fa62d6770dd1.I5b2ea2e5316ebed94ed77ff0a31d78a9672e4016@changeid
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c

index a529404d416c08ec3de00b78aafd7596527334cf..ec43601d410a954266f405652f69f45cd215495f 100644 (file)
@@ -4988,6 +4988,34 @@ static void iwl_mvm_mac_sta_statistics(struct ieee80211_hw *hw,
        mutex_unlock(&mvm->mutex);
 }
 
+static void iwl_mvm_event_mlme_callback_ini(struct iwl_mvm *mvm,
+                                           struct ieee80211_vif *vif,
+                                           const  struct ieee80211_mlme_event *mlme)
+{
+       if (mlme->data == ASSOC_EVENT && (mlme->status == MLME_DENIED ||
+                                         mlme->status == MLME_TIMEOUT)) {
+               iwl_dbg_tlv_time_point(&mvm->fwrt,
+                                      IWL_FW_INI_TIME_POINT_ASSOC_FAILED,
+                                      NULL);
+               return;
+       }
+
+       if (mlme->data == AUTH_EVENT && (mlme->status == MLME_DENIED ||
+                                        mlme->status == MLME_TIMEOUT)) {
+               iwl_dbg_tlv_time_point(&mvm->fwrt,
+                                      IWL_FW_INI_TIME_POINT_EAPOL_FAILED,
+                                      NULL);
+               return;
+       }
+
+       if (mlme->data == DEAUTH_RX_EVENT || mlme->data == DEAUTH_TX_EVENT) {
+               iwl_dbg_tlv_time_point(&mvm->fwrt,
+                                      IWL_FW_INI_TIME_POINT_DEASSOC,
+                                      NULL);
+               return;
+       }
+}
+
 static void iwl_mvm_event_mlme_callback(struct iwl_mvm *mvm,
                                        struct ieee80211_vif *vif,
                                        const struct ieee80211_event *event)
@@ -5002,6 +5030,11 @@ static void iwl_mvm_event_mlme_callback(struct iwl_mvm *mvm,
        struct iwl_fw_dbg_trigger_tlv *trig;
        struct iwl_fw_dbg_trigger_mlme *trig_mlme;
 
+       if (iwl_trans_dbg_ini_valid(mvm->trans)) {
+               iwl_mvm_event_mlme_callback_ini(mvm, vif, &event->u.mlme);
+               return;
+       }
+
        trig = iwl_fw_dbg_trigger_on(&mvm->fwrt, ieee80211_vif_to_wdev(vif),
                                     FW_DBG_TRIGGER_MLME);
        if (!trig)