|
@@ -33,6 +33,7 @@ static unsigned int wow_mode;
|
|
|
static unsigned int uart_debug;
|
|
|
static unsigned int ath6kl_p2p;
|
|
|
static unsigned int testmode;
|
|
|
+static unsigned int recovery_enable;
|
|
|
static unsigned int heart_beat_poll;
|
|
|
|
|
|
module_param(debug_mask, uint, 0644);
|
|
@@ -41,9 +42,12 @@ module_param(wow_mode, uint, 0644);
|
|
|
module_param(uart_debug, uint, 0644);
|
|
|
module_param(ath6kl_p2p, uint, 0644);
|
|
|
module_param(testmode, uint, 0644);
|
|
|
+module_param(recovery_enable, uint, 0644);
|
|
|
module_param(heart_beat_poll, uint, 0644);
|
|
|
-MODULE_PARM_DESC(heart_beat_poll, "Enable fw error detection periodic" \
|
|
|
- "polling. This also specifies the polling interval in msecs");
|
|
|
+MODULE_PARM_DESC(recovery_enable, "Enable recovery from firmware error");
|
|
|
+MODULE_PARM_DESC(heart_beat_poll, "Enable fw error detection periodic" \
|
|
|
+ "polling. This also specifies the polling interval in" \
|
|
|
+ "msecs. Set reocvery_enable for this to be effective");
|
|
|
|
|
|
void ath6kl_core_tx_complete(struct ath6kl *ar, struct sk_buff *skb)
|
|
|
{
|
|
@@ -206,6 +210,10 @@ int ath6kl_core_init(struct ath6kl *ar, enum ath6kl_htc_type htc_type)
|
|
|
ath6kl_dbg(ATH6KL_DBG_TRC, "%s: name=%s dev=0x%p, ar=0x%p\n",
|
|
|
__func__, wdev->netdev->name, wdev->netdev, ar);
|
|
|
|
|
|
+ ar->fw_recovery.enable = !!recovery_enable;
|
|
|
+ if (!ar->fw_recovery.enable)
|
|
|
+ return ret;
|
|
|
+
|
|
|
if (heart_beat_poll &&
|
|
|
test_bit(ATH6KL_FW_CAPABILITY_HEART_BEAT_POLL,
|
|
|
ar->fw_capabilities))
|