diff options
author | Ron Rindjunsky <ron.rindjunsky@intel.com> | 2008-05-29 04:35:06 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2008-06-03 15:00:23 -0400 |
commit | fe9b6b720bd11c598417529755ac850a85070560 (patch) | |
tree | 4b87cb64ce53800c7182929088ef92b9c689f78c /drivers/net/wireless/iwlwifi/iwl4965-base.c | |
parent | 7c616cba240cd0d579c996be3f3603456acfb0ad (diff) |
iwlwifi: activate status ready timeout only for run time ucode
This patch makes driver state timeout checks on ucode alive response
only if run time ucode have been loaded.
Signed-off-by: Ron Rindjunsky <ron.rindjunsky@intel.com>
Signed-off-by: Tomas Winkler <tomas.winkler@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/iwlwifi/iwl4965-base.c')
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl4965-base.c | 26 |
1 files changed, 14 insertions, 12 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl4965-base.c b/drivers/net/wireless/iwlwifi/iwl4965-base.c index b3c180723489..af8394c4b2df 100644 --- a/drivers/net/wireless/iwlwifi/iwl4965-base.c +++ b/drivers/net/wireless/iwlwifi/iwl4965-base.c | |||
@@ -4074,21 +4074,23 @@ static int iwl4965_mac_start(struct ieee80211_hw *hw) | |||
4074 | if (test_bit(STATUS_IN_SUSPEND, &priv->status)) | 4074 | if (test_bit(STATUS_IN_SUSPEND, &priv->status)) |
4075 | return 0; | 4075 | return 0; |
4076 | 4076 | ||
4077 | /* Wait for START_ALIVE from ucode. Otherwise callbacks from | 4077 | /* Wait for START_ALIVE from Run Time ucode. Otherwise callbacks from |
4078 | * mac80211 will not be run successfully. */ | 4078 | * mac80211 will not be run successfully. */ |
4079 | ret = wait_event_interruptible_timeout(priv->wait_command_queue, | 4079 | if (priv->ucode_type == UCODE_RT) { |
4080 | test_bit(STATUS_READY, &priv->status), | 4080 | ret = wait_event_interruptible_timeout(priv->wait_command_queue, |
4081 | UCODE_READY_TIMEOUT); | 4081 | test_bit(STATUS_READY, &priv->status), |
4082 | if (!ret) { | 4082 | UCODE_READY_TIMEOUT); |
4083 | if (!test_bit(STATUS_READY, &priv->status)) { | 4083 | if (!ret) { |
4084 | IWL_ERROR("Wait for START_ALIVE timeout after %dms.\n", | 4084 | if (!test_bit(STATUS_READY, &priv->status)) { |
4085 | jiffies_to_msecs(UCODE_READY_TIMEOUT)); | 4085 | IWL_ERROR("START_ALIVE timeout after %dms.\n", |
4086 | ret = -ETIMEDOUT; | 4086 | jiffies_to_msecs(UCODE_READY_TIMEOUT)); |
4087 | goto out_release_irq; | 4087 | ret = -ETIMEDOUT; |
4088 | goto out_release_irq; | ||
4089 | } | ||
4088 | } | 4090 | } |
4089 | } | ||
4090 | 4091 | ||
4091 | priv->is_open = 1; | 4092 | priv->is_open = 1; |
4093 | } | ||
4092 | IWL_DEBUG_MAC80211("leave\n"); | 4094 | IWL_DEBUG_MAC80211("leave\n"); |
4093 | return 0; | 4095 | return 0; |
4094 | 4096 | ||