Commit 154b25ce authored by Emmanuel Grumbach's avatar Emmanuel Grumbach Committed by John W. Linville

iwlwifi: blocking mac_start until uCode is complete

This patch makes iwl4965_mac_start block until the uCode has been
completely loaded.
Signed-off-by: default avatarEmmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: default avatarTomas Winkler <tomas.winkler@intel.com>
Signed-off-by: default avatarZhu Yi <yi.zhu@intel.com>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent 06da0699
...@@ -2566,7 +2566,7 @@ static void iwl_bg_scan_completed(struct work_struct *work) ...@@ -2566,7 +2566,7 @@ static void iwl_bg_scan_completed(struct work_struct *work)
* *
*****************************************************************************/ *****************************************************************************/
#define UCODE_READY_TIMEOUT (2 * HZ) #define UCODE_READY_TIMEOUT (4 * HZ)
static int iwl4965_mac_start(struct ieee80211_hw *hw) static int iwl4965_mac_start(struct ieee80211_hw *hw)
{ {
...@@ -2619,17 +2619,15 @@ static int iwl4965_mac_start(struct ieee80211_hw *hw) ...@@ -2619,17 +2619,15 @@ static int iwl4965_mac_start(struct ieee80211_hw *hw)
/* Wait for START_ALIVE from Run Time ucode. Otherwise callbacks from /* Wait for START_ALIVE from Run Time ucode. Otherwise callbacks from
* mac80211 will not be run successfully. */ * mac80211 will not be run successfully. */
if (priv->ucode_type == UCODE_RT) { ret = wait_event_interruptible_timeout(priv->wait_command_queue,
ret = wait_event_interruptible_timeout(priv->wait_command_queue, test_bit(STATUS_READY, &priv->status),
test_bit(STATUS_READY, &priv->status), UCODE_READY_TIMEOUT);
UCODE_READY_TIMEOUT); if (!ret) {
if (!ret) { if (!test_bit(STATUS_READY, &priv->status)) {
if (!test_bit(STATUS_READY, &priv->status)) { IWL_ERROR("START_ALIVE timeout after %dms.\n",
IWL_ERROR("START_ALIVE timeout after %dms.\n", jiffies_to_msecs(UCODE_READY_TIMEOUT));
jiffies_to_msecs(UCODE_READY_TIMEOUT)); ret = -ETIMEDOUT;
ret = -ETIMEDOUT; goto out_release_irq;
goto out_release_irq;
}
} }
priv->is_open = 1; priv->is_open = 1;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment