diff options
Diffstat (limited to 'drivers/net/wireless/ath/ath10k/debug.c')
-rw-r--r-- | drivers/net/wireless/ath/ath10k/debug.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/drivers/net/wireless/ath/ath10k/debug.c b/drivers/net/wireless/ath/ath10k/debug.c index 9147dd36dcdd..a8f5a72ba259 100644 --- a/drivers/net/wireless/ath/ath10k/debug.c +++ b/drivers/net/wireless/ath/ath10k/debug.c | |||
@@ -695,7 +695,8 @@ static ssize_t ath10k_read_simulate_fw_crash(struct file *file, | |||
695 | "To simulate firmware crash write one of the keywords to this file:\n" | 695 | "To simulate firmware crash write one of the keywords to this file:\n" |
696 | "`soft` - this will send WMI_FORCE_FW_HANG_ASSERT to firmware if FW supports that command.\n" | 696 | "`soft` - this will send WMI_FORCE_FW_HANG_ASSERT to firmware if FW supports that command.\n" |
697 | "`hard` - this will send to firmware command with illegal parameters causing firmware crash.\n" | 697 | "`hard` - this will send to firmware command with illegal parameters causing firmware crash.\n" |
698 | "`assert` - this will send special illegal parameter to firmware to cause assert failure and crash.\n"; | 698 | "`assert` - this will send special illegal parameter to firmware to cause assert failure and crash.\n" |
699 | "`hw-restart` - this will simply queue hw restart without fw/hw actually crashing.\n"; | ||
699 | 700 | ||
700 | return simple_read_from_buffer(user_buf, count, ppos, buf, strlen(buf)); | 701 | return simple_read_from_buffer(user_buf, count, ppos, buf, strlen(buf)); |
701 | } | 702 | } |
@@ -748,6 +749,10 @@ static ssize_t ath10k_write_simulate_fw_crash(struct file *file, | |||
748 | } else if (!strcmp(buf, "assert")) { | 749 | } else if (!strcmp(buf, "assert")) { |
749 | ath10k_info(ar, "simulating firmware assert crash\n"); | 750 | ath10k_info(ar, "simulating firmware assert crash\n"); |
750 | ret = ath10k_debug_fw_assert(ar); | 751 | ret = ath10k_debug_fw_assert(ar); |
752 | } else if (!strcmp(buf, "hw-restart")) { | ||
753 | ath10k_info(ar, "user requested hw restart\n"); | ||
754 | queue_work(ar->workqueue, &ar->restart_work); | ||
755 | ret = 0; | ||
751 | } else { | 756 | } else { |
752 | ret = -EINVAL; | 757 | ret = -EINVAL; |
753 | goto exit; | 758 | goto exit; |