wifi: iwlwifi: mvm: add API for EML OMN frame failure
authorEmmanuel Grumbach <emmanuel.grumbach@intel.com>
Thu, 8 Aug 2024 20:22:42 +0000 (23:22 +0300)
committerJohannes Berg <johannes.berg@intel.com>
Tue, 27 Aug 2024 08:28:54 +0000 (10:28 +0200)
When the firmware fails to send EML OMN frames, it notifies the host and
the host need to take proper action.

Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Link: https://patch.msgid.link/20240808232017.0c6bc216ef8c.Ida85d2062734a569e1af35f47d14cc5bb4bf893e@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
drivers/net/wireless/intel/iwlwifi/fw/api/mac-cfg.h

index 5fc7967df6c58f2780cde94aa23c69a8a7ffc65a..6a2c5bed357e90b7f5a36544e702a61913ffc864 100644 (file)
@@ -65,6 +65,10 @@ enum iwl_mac_conf_subcmd_ids {
         * @MISSED_BEACONS_NOTIF: &struct iwl_missed_beacons_notif
         */
        MISSED_BEACONS_NOTIF = 0xF6,
+       /**
+        * @EMLSR_TRANS_FAIL_NOTIF: &struct iwl_esr_trans_fail_notif
+        */
+       EMLSR_TRANS_FAIL_NOTIF = 0xF7,
        /**
         * @ROC_NOTIF: &struct iwl_roc_notif
         */
@@ -690,4 +694,30 @@ struct iwl_missed_beacons_notif {
        __le32 consec_missed_beacons_other_link;
 } __packed; /* MISSED_BEACON_NTFY_API_S_VER_5 */
 
+/*
+ * enum iwl_esr_trans_fail_code: to be used to parse the notif below
+ *
+ * @ESR_TRANS_FAILED_TX_STATUS_ERROR: failed to TX EML OMN frame
+ * @ESR_TRANSITION_FAILED_TX_TIMEOUT: timeout on the EML OMN frame
+ * @ESR_TRANSITION_FAILED_BEACONS_NOT_HEARD: can't get a beacon on the new link
+ */
+enum iwl_esr_trans_fail_code {
+       ESR_TRANS_FAILED_TX_STATUS_ERROR,
+       ESR_TRANSITION_FAILED_TX_TIMEOUT,
+       ESR_TRANSITION_FAILED_BEACONS_NOT_HEARD,
+};
+
+/**
+ * struct iwl_esr_trans_fail_notif - FW reports a failure in EMLSR transition
+ *
+ * @link_id: the link_id that was activated / de-activated
+ * @activation: true if the link was activated, false otherwise
+ * @err_code: see &enum iwl_esr_trans_fail_code
+ */
+struct iwl_esr_trans_fail_notif {
+       __le32 link_id;
+       __le32 activation;
+       __le32 err_code;
+} __packed; /* ESR_TRANSITION_FAILED_NTFY_API_S_VER_1 */
+
 #endif /* __iwl_fw_api_mac_cfg_h__ */