ath11k: Add hw-restart option to simulate_fw_crash
authorWen Gong <quic_wgong@quicinc.com>
Mon, 21 Mar 2022 11:17:03 +0000 (13:17 +0200)
committerKalle Valo <quic_kvalo@quicinc.com>
Wed, 23 Mar 2022 08:56:58 +0000 (10:56 +0200)
Add hw-restart to directly restart wlan. Like UTF mode start it will
restart hardware and download firmware again.

Usage:
1. Run command:
   echo hw-restart > /sys/kernel/debug/ath11k/qca6390\ hw2.0/simulate_fw_crash
   echo hw-restart > /sys/kernel/debug/ath11k/wcn6855\ hw2.0/simulate_fw_crash
2. wlan will be restart and do recovery process and success.

Tested-on: WCN6855 hw2.0 PCI WLAN.HSP.1.1-03003-QCAHSPSWPL_V1_V2_SILICONZ_LITE-2

Signed-off-by: Wen Gong <quic_wgong@quicinc.com>
Signed-off-by: Kalle Valo <quic_kvalo@quicinc.com>
Link: https://lore.kernel.org/r/20220228064606.8981-4-quic_wgong@quicinc.com
drivers/net/wireless/ath/ath11k/debugfs.c

index a82266c8befc92d57c5e4877f27b25ace97d1c4e..9648e00173936b7f8e203986681ec52cc490cccb 100644 (file)
@@ -596,6 +596,10 @@ static ssize_t ath11k_write_simulate_fw_crash(struct file *file,
                ret = ath11k_wmi_force_fw_hang_cmd(ar,
                                                   ATH11K_WMI_FW_HANG_ASSERT_TYPE,
                                                   ATH11K_WMI_FW_HANG_DELAY);
+       } else if (!strcmp(buf, "hw-restart")) {
+               ath11k_info(ab, "user requested hw restart\n");
+               queue_work(ab->workqueue_aux, &ab->reset_work);
+               ret = 0;
        } else {
                ret = -EINVAL;
                goto exit;