Browse Source

wlcore: decrease warning verbosity during recovery

Silently ignore repetitive scheduling of recovery work and commands
being passed to the bus when the HW is not available. This can happen
many times during recovery and slow it down. It also spams the kernel
logs.

Signed-off-by: Arik Nemtsov <arik@wizery.com>
Signed-off-by: Eliad Peller <eliad@wizery.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Arik Nemtsov 12 years ago
parent
commit
1ede950073
2 changed files with 5 additions and 4 deletions
  1. 2 2
      drivers/net/wireless/ti/wlcore/cmd.c
  2. 3 2
      drivers/net/wireless/ti/wlcore/main.c

+ 2 - 2
drivers/net/wireless/ti/wlcore/cmd.c

@@ -60,8 +60,8 @@ static int __wlcore_cmd_send(struct wl1271 *wl, u16 id, void *buf,
 	u16 status;
 	u16 status;
 	u16 poll_count = 0;
 	u16 poll_count = 0;
 
 
-	if (WARN_ON(wl->state == WLCORE_STATE_RESTARTING &&
-		    id != CMD_STOP_FWLOGGER))
+	if (unlikely(wl->state == WLCORE_STATE_RESTARTING &&
+		     id != CMD_STOP_FWLOGGER))
 		return -EIO;
 		return -EIO;
 
 
 	cmd = buf;
 	cmd = buf;

+ 3 - 2
drivers/net/wireless/ti/wlcore/main.c

@@ -782,10 +782,11 @@ out:
 
 
 void wl12xx_queue_recovery_work(struct wl1271 *wl)
 void wl12xx_queue_recovery_work(struct wl1271 *wl)
 {
 {
-	WARN_ON(!test_bit(WL1271_FLAG_INTENDED_FW_RECOVERY, &wl->flags));
-
 	/* Avoid a recursive recovery */
 	/* Avoid a recursive recovery */
 	if (wl->state == WLCORE_STATE_ON) {
 	if (wl->state == WLCORE_STATE_ON) {
+		WARN_ON(!test_bit(WL1271_FLAG_INTENDED_FW_RECOVERY,
+				  &wl->flags));
+
 		wl->state = WLCORE_STATE_RESTARTING;
 		wl->state = WLCORE_STATE_RESTARTING;
 		set_bit(WL1271_FLAG_RECOVERY_IN_PROGRESS, &wl->flags);
 		set_bit(WL1271_FLAG_RECOVERY_IN_PROGRESS, &wl->flags);
 		wl1271_ps_elp_wakeup(wl);
 		wl1271_ps_elp_wakeup(wl);