|
@@ -39,6 +39,7 @@
|
|
|
#include "hw_ops.h"
|
|
|
|
|
|
#define WL1271_CMD_FAST_POLL_COUNT 50
|
|
|
+#define WL1271_WAIT_EVENT_FAST_POLL_COUNT 20
|
|
|
|
|
|
/*
|
|
|
* send command to firmware
|
|
@@ -138,6 +139,7 @@ static int wl1271_cmd_wait_for_event_or_timeout(struct wl1271 *wl,
|
|
|
u32 *events_vector;
|
|
|
u32 event;
|
|
|
unsigned long timeout_time;
|
|
|
+ u16 poll_count = 0;
|
|
|
int ret = 0;
|
|
|
|
|
|
*timeout = false;
|
|
@@ -156,7 +158,11 @@ static int wl1271_cmd_wait_for_event_or_timeout(struct wl1271 *wl,
|
|
|
goto out;
|
|
|
}
|
|
|
|
|
|
- msleep(1);
|
|
|
+ poll_count++;
|
|
|
+ if (poll_count < WL1271_WAIT_EVENT_FAST_POLL_COUNT)
|
|
|
+ usleep_range(50, 51);
|
|
|
+ else
|
|
|
+ usleep_range(1000, 5000);
|
|
|
|
|
|
/* read from both event fields */
|
|
|
ret = wlcore_read(wl, wl->mbox_ptr[0], events_vector,
|