wifi: iwlwifi: mvm: use the new command to clear the internal buffer
authorEmmanuel Grumbach <emmanuel.grumbach@intel.com>
Tue, 19 Dec 2023 19:59:01 +0000 (21:59 +0200)
committerJohannes Berg <johannes.berg@intel.com>
Thu, 21 Dec 2023 19:35:17 +0000 (20:35 +0100)
The firmware can allow to clear the internal debug buffer. This can be
used to sanitize the data when requested to.

Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Reviewed-by: Gregory Greenman <gregory.greenman@intel.com>
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Link: https://msgid.link/20231219215605.99aed3efbacb.Ib5bda1d1ff4bae476667737d4081ad066d1d7e6b@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
drivers/net/wireless/intel/iwlwifi/fw/api/debug.h
drivers/net/wireless/intel/iwlwifi/fw/dbg.c
drivers/net/wireless/intel/iwlwifi/fw/file.h

index 7b18e098b125b4591a6a07ffea3c927d4c64a9e2..798731ecbefde7f625d0cf00ef688f10281727be 100644 (file)
@@ -59,6 +59,12 @@ enum iwl_debug_cmds {
         * &struct iwl_dbg_dump_complete_cmd
         */
        FW_DUMP_COMPLETE_CMD = 0xB,
+       /**
+        * @FW_CLEAR_BUFFER:
+        * clears the firmware's internal buffer
+        * no payload
+        */
+       FW_CLEAR_BUFFER = 0xD,
        /**
         * @MFU_ASSERT_DUMP_NTF:
         * &struct iwl_mfu_assert_dump_notif
index f6e399d1e95c6b33ff837f5050fc2d8ac5bfad52..e27774e7ed74d82bbbb9821f24a2bc3a1578395b 100644 (file)
@@ -3401,6 +3401,15 @@ void iwl_fw_dbg_clear_monitor_buf(struct iwl_fw_runtime *fwrt)
        struct iwl_fw_dbg_params params = {0};
 
        iwl_fw_dbg_stop_sync(fwrt);
+
+       if (fw_has_api(&fwrt->fw->ucode_capa,
+                      IWL_UCODE_TLV_API_INT_DBG_BUF_CLEAR)) {
+               struct iwl_host_cmd hcmd = {
+                       .id = WIDE_ID(DEBUG_GROUP, FW_CLEAR_BUFFER),
+               };
+               iwl_trans_send_cmd(fwrt->trans, &hcmd);
+       }
+
        iwl_dbg_tlv_init_cfg(fwrt);
        iwl_fw_dbg_stop_restart_recording(fwrt, &params, false);
 }
index c38e5194c55f0d75a72a1de1c6cffb9ce22b1362..bfc39bd5bbc6dec688bc8f28407a758a0f8fd571 100644 (file)
@@ -245,6 +245,8 @@ typedef unsigned int __bitwise iwl_ucode_tlv_api_t;
  *  SCAN_CONFIG_DB_CMD_API_S.
  * @IWL_UCODE_TLV_API_NO_HOST_DISABLE_TX: Firmware offloaded the station disable tx
  *     logic.
+ * @IWL_UCODE_TLV_API_INT_DBG_BUF_CLEAR: Firmware supports clearing the debug
+ *     internal buffer
  *
  * @NUM_IWL_UCODE_TLV_API: number of bits used
  */
@@ -282,7 +284,9 @@ enum iwl_ucode_tlv_api {
        IWL_UCODE_TLV_API_ADWELL_HB_DEF_N_AP    = (__force iwl_ucode_tlv_api_t)57,
        IWL_UCODE_TLV_API_SCAN_EXT_CHAN_VER     = (__force iwl_ucode_tlv_api_t)58,
        IWL_UCODE_TLV_API_BAND_IN_RX_DATA       = (__force iwl_ucode_tlv_api_t)59,
+       /* API Set 2 */
        IWL_UCODE_TLV_API_NO_HOST_DISABLE_TX    = (__force iwl_ucode_tlv_api_t)66,
+       IWL_UCODE_TLV_API_INT_DBG_BUF_CLEAR     = (__force iwl_ucode_tlv_api_t)67,
 
        NUM_IWL_UCODE_TLV_API
 /*