|
@@ -25,6 +25,10 @@
|
|
|
#define WAIT_FOR_DISCONNECT_TIMEOUT_MS 2000
|
|
|
#define WAIT_FOR_DISCONNECT_INTERVAL_MS 10
|
|
|
|
|
|
+bool debug_fw; /* = false; */
|
|
|
+module_param(debug_fw, bool, S_IRUGO);
|
|
|
+MODULE_PARM_DESC(debug_fw, " do not perform card reset. For FW debug");
|
|
|
+
|
|
|
bool no_fw_recovery;
|
|
|
module_param(no_fw_recovery, bool, S_IRUGO | S_IWUSR);
|
|
|
MODULE_PARM_DESC(no_fw_recovery, " disable automatic FW error recovery");
|
|
@@ -686,6 +690,17 @@ int wil_reset(struct wil6210_priv *wil, bool load_fw)
|
|
|
WARN_ON(!mutex_is_locked(&wil->mutex));
|
|
|
WARN_ON(test_bit(wil_status_napi_en, wil->status));
|
|
|
|
|
|
+ if (debug_fw) {
|
|
|
+ static const u8 mac[ETH_ALEN] = {
|
|
|
+ 0x00, 0xde, 0xad, 0x12, 0x34, 0x56,
|
|
|
+ };
|
|
|
+ struct net_device *ndev = wil_to_ndev(wil);
|
|
|
+
|
|
|
+ ether_addr_copy(ndev->perm_addr, mac);
|
|
|
+ ether_addr_copy(ndev->dev_addr, ndev->perm_addr);
|
|
|
+ return 0;
|
|
|
+ }
|
|
|
+
|
|
|
cancel_work_sync(&wil->disconnect_worker);
|
|
|
wil6210_disconnect(wil, NULL, WLAN_REASON_DEAUTH_LEAVING, false);
|
|
|
wil_bcast_fini(wil);
|