Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 150268
b: refs/heads/master
c: 19cc108
h: refs/heads/master
v: v3
  • Loading branch information
Johannes Berg authored and John W. Linville committed May 11, 2009
1 parent 8c86de1 commit 7296432
Show file tree
Hide file tree
Showing 5 changed files with 25 additions and 62 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 44033f80cefd1d7b474efdabc412476d4bafb8f4
refs/heads/master: 19cc10870ece942d287241937944c237130f50f4
43 changes: 13 additions & 30 deletions trunk/drivers/net/wireless/iwlwifi/iwl-agn.c
Original file line number Diff line number Diff line change
Expand Up @@ -190,8 +190,7 @@ int iwl_commit_rxon(struct iwl_priv *priv)

priv->cfg->ops->smgmt->clear_station_table(priv);

if (!priv->error_recovering)
priv->start_calib = 0;
priv->start_calib = 0;

/* Add the broadcast address so we can send broadcast frames */
if (iwl_rxon_add_station(priv, iwl_bcast_addr, 0) ==
Expand Down Expand Up @@ -967,23 +966,6 @@ static inline void iwl_synchronize_irq(struct iwl_priv *priv)
tasklet_kill(&priv->irq_tasklet);
}

static void iwl_error_recovery(struct iwl_priv *priv)
{
unsigned long flags;

memcpy(&priv->staging_rxon, &priv->recovery_rxon,
sizeof(priv->staging_rxon));
priv->staging_rxon.filter_flags &= ~RXON_FILTER_ASSOC_MSK;
iwlcore_commit_rxon(priv);

iwl_rxon_add_station(priv, priv->bssid, 1);

spin_lock_irqsave(&priv->lock, flags);
priv->assoc_id = le16_to_cpu(priv->staging_rxon.assoc_id);
priv->error_recovering = 0;
spin_unlock_irqrestore(&priv->lock, flags);
}

static void iwl_irq_tasklet(struct iwl_priv *priv)
{
u32 inta, handled = 0;
Expand Down Expand Up @@ -1514,9 +1496,6 @@ static void iwl_alive_start(struct iwl_priv *priv)
set_bit(STATUS_READY, &priv->status);
wake_up_interruptible(&priv->wait_command_queue);

if (priv->error_recovering)
iwl_error_recovery(priv);

iwl_power_update_mode(priv, 1);

/* reassociate for ADHOC mode */
Expand Down Expand Up @@ -1715,9 +1694,6 @@ static int __iwl_up(struct iwl_priv *priv)
continue;
}

/* Clear out the uCode error bit if it is set */
clear_bit(STATUS_FW_ERROR, &priv->status);

/* start card; "initialize" will load runtime ucode */
iwl_nic_start(priv);

Expand Down Expand Up @@ -1812,8 +1788,17 @@ static void iwl_bg_restart(struct work_struct *data)
if (test_bit(STATUS_EXIT_PENDING, &priv->status))
return;

iwl_down(priv);
queue_work(priv->workqueue, &priv->up);
if (test_and_clear_bit(STATUS_FW_ERROR, &priv->status)) {
mutex_lock(&priv->mutex);
priv->vif = NULL;
priv->is_open = 0;
mutex_unlock(&priv->mutex);
iwl_down(priv);
ieee80211_restart_hw(priv->hw);
} else {
iwl_down(priv);
queue_work(priv->workqueue, &priv->up);
}
}

static void iwl_bg_rx_replenish(struct work_struct *data)
Expand Down Expand Up @@ -2007,10 +1992,8 @@ static void iwl_mac_stop(struct ieee80211_hw *hw)

IWL_DEBUG_MAC80211(priv, "enter\n");

if (!priv->is_open) {
IWL_DEBUG_MAC80211(priv, "leave - skip\n");
if (!priv->is_open)
return;
}

priv->is_open = 0;

Expand Down
5 changes: 0 additions & 5 deletions trunk/drivers/net/wireless/iwlwifi/iwl-core.c
Original file line number Diff line number Diff line change
Expand Up @@ -1229,11 +1229,6 @@ void iwl_irq_handle_error(struct iwl_priv *priv)
IWL_DEBUG(priv, IWL_DL_FW_ERRORS,
"Restarting adapter due to uCode error.\n");

if (iwl_is_associated(priv)) {
memcpy(&priv->recovery_rxon, &priv->active_rxon,
sizeof(priv->recovery_rxon));
priv->error_recovering = 1;
}
if (priv->cfg->mod_params->restart_fw)
queue_work(priv->workqueue, &priv->restart);
}
Expand Down
1 change: 0 additions & 1 deletion trunk/drivers/net/wireless/iwlwifi/iwl-dev.h
Original file line number Diff line number Diff line change
Expand Up @@ -933,7 +933,6 @@ struct iwl_priv {
const struct iwl_rxon_cmd active_rxon;
struct iwl_rxon_cmd staging_rxon;

int error_recovering;
struct iwl_rxon_cmd recovery_rxon;

/* 1st responses from initialize and runtime uCode images.
Expand Down
36 changes: 11 additions & 25 deletions trunk/drivers/net/wireless/iwlwifi/iwl3945-base.c
Original file line number Diff line number Diff line change
Expand Up @@ -1837,23 +1837,6 @@ static void iwl3945_dump_nic_event_log(struct iwl_priv *priv)
iwl_release_nic_access(priv);
}

static void iwl3945_error_recovery(struct iwl_priv *priv)
{
unsigned long flags;

memcpy(&priv->staging_rxon, &priv->recovery_rxon,
sizeof(priv->staging_rxon));
priv->staging_rxon.filter_flags &= ~RXON_FILTER_ASSOC_MSK;
iwlcore_commit_rxon(priv);

priv->cfg->ops->smgmt->add_station(priv, priv->bssid, 1, 0, NULL);

spin_lock_irqsave(&priv->lock, flags);
priv->assoc_id = le16_to_cpu(priv->staging_rxon.assoc_id);
priv->error_recovering = 0;
spin_unlock_irqrestore(&priv->lock, flags);
}

static void iwl3945_irq_tasklet(struct iwl_priv *priv)
{
u32 inta, handled = 0;
Expand Down Expand Up @@ -2683,9 +2666,6 @@ static void iwl3945_alive_start(struct iwl_priv *priv)
/* After the ALIVE response, we can send commands to 3945 uCode */
set_bit(STATUS_ALIVE, &priv->status);

/* Clear out the uCode error bit if it is set */
clear_bit(STATUS_FW_ERROR, &priv->status);

if (iwl_is_rfkill(priv))
return;

Expand Down Expand Up @@ -2722,9 +2702,6 @@ static void iwl3945_alive_start(struct iwl_priv *priv)
set_bit(STATUS_READY, &priv->status);
wake_up_interruptible(&priv->wait_command_queue);

if (priv->error_recovering)
iwl3945_error_recovery(priv);

/* reassociate for ADHOC mode */
if (priv->vif && (priv->iw_mode == NL80211_IFTYPE_ADHOC)) {
struct sk_buff *beacon = ieee80211_beacon_get(priv->hw,
Expand Down Expand Up @@ -3231,8 +3208,17 @@ static void iwl3945_bg_restart(struct work_struct *data)
if (test_bit(STATUS_EXIT_PENDING, &priv->status))
return;

iwl3945_down(priv);
queue_work(priv->workqueue, &priv->up);
if (test_and_clear_bit(STATUS_FW_ERROR, &priv->status)) {
mutex_lock(&priv->mutex);
priv->vif = NULL;
priv->is_open = 0;
mutex_unlock(&priv->mutex);
iwl3945_down(priv);
ieee80211_restart_hw(priv->hw);
} else {
iwl3945_down(priv);
queue_work(priv->workqueue, &priv->up);
}
}

static void iwl3945_bg_rx_replenish(struct work_struct *data)
Expand Down

0 comments on commit 7296432

Please sign in to comment.