]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
iwlwifi: dbg: debug recording stop and restart command remove
authorShahar S Matityahu <shahar.s.matityahu@intel.com>
Sun, 19 May 2019 07:32:44 +0000 (10:32 +0300)
committerLuca Coelho <luciano.coelho@intel.com>
Sat, 29 Jun 2019 07:09:44 +0000 (10:09 +0300)
The 0xF6 command used to start and stop the recording from 22560 devices
was removed. This is causing an assert when the driver tries to alter
the recording state.
Remove the use of the command.

Signed-off-by: Shahar S Matityahu <shahar.s.matityahu@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
drivers/net/wireless/intel/iwlwifi/fw/dbg.c
drivers/net/wireless/intel/iwlwifi/fw/dbg.h
drivers/net/wireless/intel/iwlwifi/mvm/d3.c
drivers/net/wireless/intel/iwlwifi/pcie/trans-gen2.c
drivers/net/wireless/intel/iwlwifi/pcie/trans.c

index 6d35d55b299795094836468c22ed9d2b88d90351..e411ac98290dc39b744c781b888969f79bd2cf21 100644 (file)
@@ -2372,7 +2372,7 @@ static void iwl_fw_dbg_collect_sync(struct iwl_fw_runtime *fwrt, u8 wk_idx)
                goto out;
        }
 
-       iwl_fw_dbg_stop_recording(fwrt, &params);
+       iwl_fw_dbg_stop_recording(fwrt->trans, &params);
 
        IWL_DEBUG_FW_INFO(fwrt, "WRT: data collection start\n");
        if (fwrt->trans->dbg.ini_valid)
index 6350546c333ca52966dced964fcb20a255175201..a8459ac71b2cc00b6fe163ff1f25e12092882731 100644 (file)
@@ -263,23 +263,6 @@ _iwl_fw_dbg_trigger_simple_stop(struct iwl_fw_runtime *fwrt,
                                        iwl_fw_dbg_get_trigger((fwrt)->fw,\
                                                               (trig)))
 
-static inline int
-iwl_fw_dbg_start_stop_hcmd(struct iwl_fw_runtime *fwrt, bool start)
-{
-       struct iwl_ldbg_config_cmd cmd = {
-               .type = start ? cpu_to_le32(START_DEBUG_RECORDING) :
-                               cpu_to_le32(STOP_DEBUG_RECORDING),
-       };
-       struct iwl_host_cmd hcmd = {
-               .id = LDBG_CONFIG_CMD,
-               .flags = CMD_ASYNC,
-               .data[0] = &cmd,
-               .len[0] = sizeof(cmd),
-       };
-
-       return iwl_trans_send_cmd(fwrt->trans, &hcmd);
-}
-
 static inline void
 _iwl_fw_dbg_stop_recording(struct iwl_trans *trans,
                           struct iwl_fw_dbg_params *params)
@@ -306,21 +289,24 @@ _iwl_fw_dbg_stop_recording(struct iwl_trans *trans,
 }
 
 static inline void
-iwl_fw_dbg_stop_recording(struct iwl_fw_runtime *fwrt,
+iwl_fw_dbg_stop_recording(struct iwl_trans *trans,
                          struct iwl_fw_dbg_params *params)
 {
        /* if the FW crashed or not debug monitor cfg was given, there is
         * no point in stopping
         */
-       if (test_bit(STATUS_FW_ERROR, &fwrt->trans->status) ||
-           (!fwrt->trans->dbg.dest_tlv &&
-            fwrt->trans->dbg.ini_dest == IWL_FW_INI_LOCATION_INVALID))
+       if (test_bit(STATUS_FW_ERROR, &trans->status) ||
+           (!trans->dbg.dest_tlv &&
+            trans->dbg.ini_dest == IWL_FW_INI_LOCATION_INVALID))
                return;
 
-       if (fwrt->trans->cfg->device_family < IWL_DEVICE_FAMILY_22560)
-               _iwl_fw_dbg_stop_recording(fwrt->trans, params);
-       else
-               iwl_fw_dbg_start_stop_hcmd(fwrt, false);
+       if (trans->cfg->device_family >= IWL_DEVICE_FAMILY_22560) {
+               IWL_ERR(trans,
+                       "WRT: unsupported device family %d for debug stop recording\n",
+                       trans->cfg->device_family);
+               return;
+       }
+       _iwl_fw_dbg_stop_recording(trans, params);
 }
 
 static inline void
@@ -362,10 +348,13 @@ iwl_fw_dbg_restart_recording(struct iwl_fw_runtime *fwrt,
             fwrt->trans->dbg.ini_dest == IWL_FW_INI_LOCATION_INVALID))
                return;
 
-       if (fwrt->trans->cfg->device_family < IWL_DEVICE_FAMILY_22560)
-               _iwl_fw_dbg_restart_recording(fwrt->trans, params);
-       else
-               iwl_fw_dbg_start_stop_hcmd(fwrt, true);
+       if (fwrt->trans->cfg->device_family >= IWL_DEVICE_FAMILY_22560) {
+               IWL_ERR(fwrt,
+                       "WRT: unsupported device family %d for debug restart recording\n",
+                       fwrt->trans->cfg->device_family);
+               return;
+       }
+       _iwl_fw_dbg_restart_recording(fwrt->trans, params);
 #ifdef CONFIG_IWLWIFI_DEBUGFS
        iwl_fw_set_dbg_rec_on(fwrt);
 #endif
index 0e3db81fcf610bed4612e711b4a8bcb8996f23d4..cec40855a6413b5cb56924aceb99fad9b726a1f0 100644 (file)
@@ -1083,7 +1083,7 @@ static int __iwl_mvm_suspend(struct ieee80211_hw *hw,
         * recording automatically.
         */
        if (mvm->trans->cfg->device_family < IWL_DEVICE_FAMILY_9000)
-               _iwl_fw_dbg_stop_recording(mvm->trans, NULL);
+               iwl_fw_dbg_stop_recording(mvm->trans, NULL);
 
        /* must be last -- this switches firmware state */
        ret = iwl_mvm_send_cmd(mvm, &d3_cfg_cmd);
index 8507a7bdcfdd73d635d72cdcdf820a13a4f8297e..a1533f025f5e8ccf93c3d64b10c78b3628fdd48a 100644 (file)
@@ -148,7 +148,7 @@ void _iwl_trans_pcie_gen2_stop_device(struct iwl_trans *trans, bool low_power)
        trans_pcie->is_down = true;
 
        /* Stop dbgc before stopping device */
-       _iwl_fw_dbg_stop_recording(trans, NULL);
+       iwl_fw_dbg_stop_recording(trans, NULL);
 
        /* tell the device to stop sending interrupts */
        iwl_disable_interrupts(trans);
index 67a8d95cc6bee36d4f403d9992e1086e65b14baf..602c31b3992a1793bbb9cd946183514134220b5a 100644 (file)
@@ -1243,7 +1243,7 @@ static void _iwl_trans_pcie_stop_device(struct iwl_trans *trans, bool low_power)
        trans_pcie->is_down = true;
 
        /* Stop dbgc before stopping device */
-       _iwl_fw_dbg_stop_recording(trans, NULL);
+       iwl_fw_dbg_stop_recording(trans, NULL);
 
        /* tell the device to stop sending interrupts */
        iwl_disable_interrupts(trans);