Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 102935
b: refs/heads/master
c: 64e72c3
h: refs/heads/master
i:
  102933: cc50c5d
  102931: d6deb91
  102927: fac5f3a
v: v3
  • Loading branch information
Mohamed Abbas authored and John W. Linville committed Jun 14, 2008
1 parent 8558c24 commit 93e7479
Show file tree
Hide file tree
Showing 4 changed files with 18 additions and 19 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: 77c5d08e6c18e5c749f125d7df70bc7d54cb4cd8
refs/heads/master: 64e72c3efc2e4753ddfdd27ba8c7a31d6b11faba
2 changes: 1 addition & 1 deletion trunk/drivers/net/wireless/iwlwifi/iwl-core.h
Original file line number Diff line number Diff line change
Expand Up @@ -129,7 +129,7 @@ struct iwl_lib_ops {
/* 1st ucode load */
int (*load_ucode)(struct iwl_priv *priv);
/* rfkill */
void (*radio_kill_sw)(struct iwl_priv *priv, int disable_radio);
int (*radio_kill_sw)(struct iwl_priv *priv, int disable_radio);
/* power management */
struct {
int (*init)(struct iwl_priv *priv);
Expand Down
2 changes: 1 addition & 1 deletion trunk/drivers/net/wireless/iwlwifi/iwl-dev.h
Original file line number Diff line number Diff line change
Expand Up @@ -725,7 +725,7 @@ static inline u8 get_cmd_index(struct iwl_queue *q, u32 index, int is_huge)

struct iwl_priv;

extern void iwl4965_radio_kill_sw(struct iwl_priv *priv, int disable_radio);
extern int iwl4965_radio_kill_sw(struct iwl_priv *priv, int disable_radio);
/*
* Forward declare iwl-4965.c functions for iwl-base.c
*/
Expand Down
31 changes: 15 additions & 16 deletions trunk/drivers/net/wireless/iwlwifi/iwl4965-base.c
Original file line number Diff line number Diff line change
Expand Up @@ -1260,12 +1260,12 @@ static void iwl4965_set_rate(struct iwl_priv *priv)
(IWL_OFDM_BASIC_RATES_MASK >> IWL_FIRST_OFDM_RATE) & 0xFF;
}

void iwl4965_radio_kill_sw(struct iwl_priv *priv, int disable_radio)
int iwl4965_radio_kill_sw(struct iwl_priv *priv, int disable_radio)
{
unsigned long flags;

if (!!disable_radio == test_bit(STATUS_RF_KILL_SW, &priv->status))
return;
return 0;

IWL_DEBUG_RF_KILL("Manual SW RF KILL set to: RADIO %s\n",
disable_radio ? "OFF" : "ON");
Expand All @@ -1290,7 +1290,7 @@ void iwl4965_radio_kill_sw(struct iwl_priv *priv, int disable_radio)
if (priv->mac80211_registered)
ieee80211_stop_queues(priv->hw);
}
return;
return 0;
}

spin_lock_irqsave(&priv->lock, flags);
Expand All @@ -1311,11 +1311,11 @@ void iwl4965_radio_kill_sw(struct iwl_priv *priv, int disable_radio)
if (test_bit(STATUS_RF_KILL_HW, &priv->status)) {
IWL_DEBUG_RF_KILL("Can not turn radio back on - "
"disabled by HW switch\n");
return;
return 0;
}

queue_work(priv->workqueue, &priv->restart);
return;
return 1;
}

#define IWL_PACKET_RETRY_TIME HZ
Expand Down Expand Up @@ -3028,13 +3028,6 @@ static int __iwl4965_up(struct iwl_priv *priv)
return -EIO;
}

if (test_bit(STATUS_RF_KILL_SW, &priv->status)) {
IWL_WARNING("Radio disabled by SW RF kill (module "
"parameter)\n");
iwl_rfkill_set_hw_state(priv);
return -ENODEV;
}

if (!priv->ucode_data_backup.v_addr || !priv->ucode_data.v_addr) {
IWL_ERROR("ucode not available for device bringup\n");
return -EIO;
Expand Down Expand Up @@ -3088,7 +3081,8 @@ static int __iwl4965_up(struct iwl_priv *priv)
priv->ucode_data.len);

/* We return success when we resume from suspend and rf_kill is on. */
if (test_bit(STATUS_RF_KILL_HW, &priv->status))
if (test_bit(STATUS_RF_KILL_HW, &priv->status) ||
test_bit(STATUS_RF_KILL_SW, &priv->status))
return 0;

for (i = 0; i < MAX_HW_RESTARTS; i++) {
Expand All @@ -3115,6 +3109,7 @@ static int __iwl4965_up(struct iwl_priv *priv)

set_bit(STATUS_EXIT_PENDING, &priv->status);
__iwl4965_down(priv);
clear_bit(STATUS_EXIT_PENDING, &priv->status);

/* tried to restart and config the device for as long as our
* patience could withstand */
Expand Down Expand Up @@ -3860,6 +3855,13 @@ static int iwl4965_mac_config(struct ieee80211_hw *hw, struct ieee80211_conf *co

priv->add_radiotap = !!(conf->flags & IEEE80211_CONF_RADIOTAP);


if (priv->cfg->ops->lib->radio_kill_sw &&
priv->cfg->ops->lib->radio_kill_sw(priv, !conf->radio_enabled)) {
IWL_DEBUG_MAC80211("leave - RF-KILL - waiting for uCode\n");
mutex_unlock(&priv->mutex);
}

if (!iwl_is_ready(priv)) {
IWL_DEBUG_MAC80211("leave - not ready\n");
ret = -EIO;
Expand Down Expand Up @@ -3912,9 +3914,6 @@ static int iwl4965_mac_config(struct ieee80211_hw *hw, struct ieee80211_conf *co
}
#endif

if (priv->cfg->ops->lib->radio_kill_sw)
priv->cfg->ops->lib->radio_kill_sw(priv, !conf->radio_enabled);

if (!conf->radio_enabled) {
IWL_DEBUG_MAC80211("leave - radio disabled\n");
goto out;
Expand Down

0 comments on commit 93e7479

Please sign in to comment.