From 5cc45025ce7a1b05ffd44a53fc4dd16f637692c6 Mon Sep 17 00:00:00 2001 From: Yoni Divinsky Date: Wed, 27 Jun 2012 21:35:47 +0300 Subject: [PATCH] --- yaml --- r: 315320 b: refs/heads/master c: c45ee4ff1f66b2a02f51b8a2c1c3dcfd7faefab0 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/drivers/net/wireless/ti/wlcore/cmd.c | 8 +++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index cf697f309073..ab6c16d839eb 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: c24ec83bcac50160c344b3eb0e4c601b6cb4f7e5 +refs/heads/master: c45ee4ff1f66b2a02f51b8a2c1c3dcfd7faefab0 diff --git a/trunk/drivers/net/wireless/ti/wlcore/cmd.c b/trunk/drivers/net/wireless/ti/wlcore/cmd.c index 087cb01958a7..a23949cdaebc 100644 --- a/trunk/drivers/net/wireless/ti/wlcore/cmd.c +++ b/trunk/drivers/net/wireless/ti/wlcore/cmd.c @@ -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,