]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
wifi: iwlwifi: pcie: add missing TOP reset code
authorJohannes Berg <johannes.berg@intel.com>
Mon, 9 Jun 2025 18:21:10 +0000 (21:21 +0300)
committerMiri Korenblit <miriam.rachel.korenblit@intel.com>
Wed, 11 Jun 2025 03:27:25 +0000 (06:27 +0300)
The TOP reset requires code to handle the interrupt, which had
been in my patch at some point, but clearly got lost. As the
test had been running on the wrong hardware and failing due to
that, we missed this. Add the missing code.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Link: https://patch.msgid.link/20250609211928.3f84eb03cc00.If138ceeb8bb178b3931d96b537f746346227e681@changeid
drivers/net/wireless/intel/iwlwifi/pcie/rx.c

index f0405eddc36793284c3f7f517908aa093093a329..fefde167c41b96c3ba71b2a3c8248e65a52eac10 100644 (file)
@@ -1852,7 +1852,12 @@ static void iwl_trans_pcie_handle_reset_interrupt(struct iwl_trans *trans)
                }
                fallthrough;
        case CSR_IPC_STATE_RESET_TOP_READY:
-               /* FIXME: handle this case when requesting TOP reset */
+               if (trans_pcie->fw_reset_state == FW_RESET_TOP_REQUESTED) {
+                       IWL_DEBUG_ISR(trans, "TOP Reset continues\n");
+                       trans_pcie->fw_reset_state = FW_RESET_OK;
+                       wake_up(&trans_pcie->fw_reset_waitq);
+                       break;
+               }
                fallthrough;
        case CSR_IPC_STATE_RESET_NONE:
                IWL_FW_CHECK_FAILED(trans,