Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 341447
b: refs/heads/master
c: 66ddcc3
h: refs/heads/master
i:
  341445: 18506f1
  341443: d43f471
  341439: 032aa89
v: v3
  • Loading branch information
Vasanthakumar Thiagarajan authored and Kalle Valo committed Oct 24, 2012
1 parent f9a388c commit 04a9724
Show file tree
Hide file tree
Showing 4 changed files with 24 additions and 3 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: a3561706320380027d4ac087e7b92ca19c0150df
refs/heads/master: 66ddcc39420f3c6d2356f7618fbed3dd61177cee
12 changes: 10 additions & 2 deletions trunk/drivers/net/wireless/ath/ath6kl/core.c
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand All @@ -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)
{
Expand Down Expand Up @@ -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))
Expand Down
1 change: 1 addition & 0 deletions trunk/drivers/net/wireless/ath/ath6kl/core.h
Original file line number Diff line number Diff line change
Expand Up @@ -815,6 +815,7 @@ struct ath6kl {
u32 seq_num;
bool hb_pending;
u8 hb_misscnt;
bool enable;
} fw_recovery;

#ifdef CONFIG_ATH6KL_DEBUG
Expand Down
12 changes: 12 additions & 0 deletions trunk/drivers/net/wireless/ath/ath6kl/recovery.c
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,9 @@ static void ath6kl_recovery_work(struct work_struct *work)

void ath6kl_recovery_err_notify(struct ath6kl *ar, enum ath6kl_fw_err reason)
{
if (!ar->fw_recovery.enable)
return;

ath6kl_dbg(ATH6KL_DBG_RECOVERY, "Fw error detected, reason:%d\n",
reason);

Expand Down Expand Up @@ -112,6 +115,9 @@ void ath6kl_recovery_init(struct ath6kl *ar)

void ath6kl_recovery_cleanup(struct ath6kl *ar)
{
if (!ar->fw_recovery.enable)
return;

set_bit(RECOVERY_CLEANUP, &ar->flag);

del_timer_sync(&ar->fw_recovery.hb_timer);
Expand All @@ -120,6 +126,9 @@ void ath6kl_recovery_cleanup(struct ath6kl *ar)

void ath6kl_recovery_suspend(struct ath6kl *ar)
{
if (!ar->fw_recovery.enable)
return;

ath6kl_recovery_cleanup(ar);

if (!ar->fw_recovery.err_reason)
Expand All @@ -135,6 +144,9 @@ void ath6kl_recovery_suspend(struct ath6kl *ar)

void ath6kl_recovery_resume(struct ath6kl *ar)
{
if (!ar->fw_recovery.enable)
return;

clear_bit(RECOVERY_CLEANUP, &ar->flag);

if (!ar->fw_recovery.hb_poll)
Expand Down

0 comments on commit 04a9724

Please sign in to comment.