Commit 845a9c0d authored by Emmanuel Grumbach's avatar Emmanuel Grumbach Committed by John W. Linville

iwlagn: move all iwl_is_XXX helpers to iwl-shared.h

Logic move after all priv->status moved to struct iwl_shared
Signed-off-by: default avatarEmmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: default avatarWey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent effcea16
...@@ -426,7 +426,7 @@ int iwlagn_commit_rxon(struct iwl_priv *priv, struct iwl_rxon_context *ctx) ...@@ -426,7 +426,7 @@ int iwlagn_commit_rxon(struct iwl_priv *priv, struct iwl_rxon_context *ctx)
if (test_bit(STATUS_EXIT_PENDING, &priv->shrd->status)) if (test_bit(STATUS_EXIT_PENDING, &priv->shrd->status))
return -EINVAL; return -EINVAL;
if (!iwl_is_alive(priv)) if (!iwl_is_alive(priv->shrd))
return -EBUSY; return -EBUSY;
/* This function hardcodes a bunch of dual-mode assumptions */ /* This function hardcodes a bunch of dual-mode assumptions */
...@@ -544,7 +544,7 @@ int iwlagn_mac_config(struct ieee80211_hw *hw, u32 changed) ...@@ -544,7 +544,7 @@ int iwlagn_mac_config(struct ieee80211_hw *hw, u32 changed)
goto out; goto out;
} }
if (!iwl_is_ready(priv)) { if (!iwl_is_ready(priv->shrd)) {
IWL_DEBUG_MAC80211(priv, "leave - not ready\n"); IWL_DEBUG_MAC80211(priv, "leave - not ready\n");
goto out; goto out;
} }
...@@ -794,7 +794,7 @@ void iwlagn_bss_info_changed(struct ieee80211_hw *hw, ...@@ -794,7 +794,7 @@ void iwlagn_bss_info_changed(struct ieee80211_hw *hw,
mutex_lock(&priv->shrd->mutex); mutex_lock(&priv->shrd->mutex);
if (unlikely(!iwl_is_ready(priv))) { if (unlikely(!iwl_is_ready(priv->shrd))) {
IWL_DEBUG_MAC80211(priv, "leave - not ready\n"); IWL_DEBUG_MAC80211(priv, "leave - not ready\n");
mutex_unlock(&priv->shrd->mutex); mutex_unlock(&priv->shrd->mutex);
return; return;
......
...@@ -214,7 +214,7 @@ int iwl_remove_default_wep_key(struct iwl_priv *priv, ...@@ -214,7 +214,7 @@ int iwl_remove_default_wep_key(struct iwl_priv *priv,
keyconf->keyidx); keyconf->keyidx);
memset(&ctx->wep_keys[keyconf->keyidx], 0, sizeof(ctx->wep_keys[0])); memset(&ctx->wep_keys[keyconf->keyidx], 0, sizeof(ctx->wep_keys[0]));
if (iwl_is_rfkill(priv)) { if (iwl_is_rfkill(priv->shrd)) {
IWL_DEBUG_WEP(priv, "Not sending REPLY_WEPKEY command due to RFKILL.\n"); IWL_DEBUG_WEP(priv, "Not sending REPLY_WEPKEY command due to RFKILL.\n");
/* but keys in device are clear anyway so return success */ /* but keys in device are clear anyway so return success */
return 0; return 0;
......
...@@ -511,7 +511,7 @@ static void iwl_bg_ct_enter(struct work_struct *work) ...@@ -511,7 +511,7 @@ static void iwl_bg_ct_enter(struct work_struct *work)
if (test_bit(STATUS_EXIT_PENDING, &priv->shrd->status)) if (test_bit(STATUS_EXIT_PENDING, &priv->shrd->status))
return; return;
if (!iwl_is_ready(priv)) if (!iwl_is_ready(priv->shrd))
return; return;
if (tt->state != IWL_TI_CT_KILL) { if (tt->state != IWL_TI_CT_KILL) {
...@@ -540,7 +540,7 @@ static void iwl_bg_ct_exit(struct work_struct *work) ...@@ -540,7 +540,7 @@ static void iwl_bg_ct_exit(struct work_struct *work)
if (test_bit(STATUS_EXIT_PENDING, &priv->shrd->status)) if (test_bit(STATUS_EXIT_PENDING, &priv->shrd->status))
return; return;
if (!iwl_is_ready(priv)) if (!iwl_is_ready(priv->shrd))
return; return;
/* stop ct_kill_exit_tm timer */ /* stop ct_kill_exit_tm timer */
......
...@@ -338,7 +338,7 @@ int iwlagn_tx_skb(struct iwl_priv *priv, struct sk_buff *skb) ...@@ -338,7 +338,7 @@ int iwlagn_tx_skb(struct iwl_priv *priv, struct sk_buff *skb)
ctx = iwl_rxon_ctx_from_vif(info->control.vif); ctx = iwl_rxon_ctx_from_vif(info->control.vif);
spin_lock_irqsave(&priv->shrd->lock, flags); spin_lock_irqsave(&priv->shrd->lock, flags);
if (iwl_is_rfkill(priv)) { if (iwl_is_rfkill(priv->shrd)) {
IWL_DEBUG_DROP(priv, "Dropping - RF KILL\n"); IWL_DEBUG_DROP(priv, "Dropping - RF KILL\n");
goto drop_unlock_priv; goto drop_unlock_priv;
} }
......
...@@ -251,7 +251,7 @@ static void iwl_bg_bt_runtime_config(struct work_struct *work) ...@@ -251,7 +251,7 @@ static void iwl_bg_bt_runtime_config(struct work_struct *work)
return; return;
/* dont send host command if rf-kill is on */ /* dont send host command if rf-kill is on */
if (!iwl_is_ready_rf(priv)) if (!iwl_is_ready_rf(priv->shrd))
return; return;
iwlagn_send_advance_bt_config(priv); iwlagn_send_advance_bt_config(priv);
} }
...@@ -268,7 +268,7 @@ static void iwl_bg_bt_full_concurrency(struct work_struct *work) ...@@ -268,7 +268,7 @@ static void iwl_bg_bt_full_concurrency(struct work_struct *work)
goto out; goto out;
/* dont send host command if rf-kill is on */ /* dont send host command if rf-kill is on */
if (!iwl_is_ready_rf(priv)) if (!iwl_is_ready_rf(priv->shrd))
goto out; goto out;
IWL_DEBUG_INFO(priv, "BT coex in %s mode\n", IWL_DEBUG_INFO(priv, "BT coex in %s mode\n",
...@@ -307,7 +307,7 @@ static void iwl_bg_statistics_periodic(unsigned long data) ...@@ -307,7 +307,7 @@ static void iwl_bg_statistics_periodic(unsigned long data)
return; return;
/* dont send host command if rf-kill is on */ /* dont send host command if rf-kill is on */
if (!iwl_is_ready_rf(priv)) if (!iwl_is_ready_rf(priv->shrd))
return; return;
iwl_send_statistics_request(priv, CMD_ASYNC, false); iwl_send_statistics_request(priv, CMD_ASYNC, false);
...@@ -444,7 +444,7 @@ static void iwl_bg_tx_flush(struct work_struct *work) ...@@ -444,7 +444,7 @@ static void iwl_bg_tx_flush(struct work_struct *work)
return; return;
/* do nothing if rf-kill is on */ /* do nothing if rf-kill is on */
if (!iwl_is_ready_rf(priv)) if (!iwl_is_ready_rf(priv->shrd))
return; return;
IWL_DEBUG_INFO(priv, "device request: flush all tx frames\n"); IWL_DEBUG_INFO(priv, "device request: flush all tx frames\n");
...@@ -510,7 +510,7 @@ static ssize_t show_temperature(struct device *d, ...@@ -510,7 +510,7 @@ static ssize_t show_temperature(struct device *d,
struct iwl_shared *shrd = dev_get_drvdata(d); struct iwl_shared *shrd = dev_get_drvdata(d);
struct iwl_priv *priv = shrd->priv; struct iwl_priv *priv = shrd->priv;
if (!iwl_is_alive(priv)) if (!iwl_is_alive(priv->shrd))
return -EAGAIN; return -EAGAIN;
return sprintf(buf, "%d\n", priv->temperature); return sprintf(buf, "%d\n", priv->temperature);
...@@ -523,7 +523,7 @@ static ssize_t show_tx_power(struct device *d, ...@@ -523,7 +523,7 @@ static ssize_t show_tx_power(struct device *d,
{ {
struct iwl_priv *priv = dev_get_drvdata(d); struct iwl_priv *priv = dev_get_drvdata(d);
if (!iwl_is_ready_rf(priv)) if (!iwl_is_ready_rf(priv->shrd))
return sprintf(buf, "off\n"); return sprintf(buf, "off\n");
else else
return sprintf(buf, "%d\n", priv->tx_power_user_lmt); return sprintf(buf, "%d\n", priv->tx_power_user_lmt);
...@@ -1412,7 +1412,7 @@ int iwl_alive_start(struct iwl_priv *priv) ...@@ -1412,7 +1412,7 @@ int iwl_alive_start(struct iwl_priv *priv)
/* Enable watchdog to monitor the driver tx queues */ /* Enable watchdog to monitor the driver tx queues */
iwl_setup_watchdog(priv); iwl_setup_watchdog(priv);
if (iwl_is_rfkill(priv)) if (iwl_is_rfkill(priv->shrd))
return -ERFKILL; return -ERFKILL;
/* download priority table before any calibration request */ /* download priority table before any calibration request */
...@@ -2701,7 +2701,7 @@ static void iwlagn_mac_channel_switch(struct ieee80211_hw *hw, ...@@ -2701,7 +2701,7 @@ static void iwlagn_mac_channel_switch(struct ieee80211_hw *hw,
mutex_lock(&priv->shrd->mutex); mutex_lock(&priv->shrd->mutex);
if (iwl_is_rfkill(priv)) if (iwl_is_rfkill(priv->shrd))
goto out; goto out;
if (test_bit(STATUS_EXIT_PENDING, &priv->shrd->status) || if (test_bit(STATUS_EXIT_PENDING, &priv->shrd->status) ||
...@@ -2836,7 +2836,7 @@ static void iwlagn_mac_flush(struct ieee80211_hw *hw, bool drop) ...@@ -2836,7 +2836,7 @@ static void iwlagn_mac_flush(struct ieee80211_hw *hw, bool drop)
IWL_DEBUG_TX(priv, "Aborting flush due to device shutdown\n"); IWL_DEBUG_TX(priv, "Aborting flush due to device shutdown\n");
goto done; goto done;
} }
if (iwl_is_rfkill(priv)) { if (iwl_is_rfkill(priv->shrd)) {
IWL_DEBUG_TX(priv, "Aborting flush due to RF Kill\n"); IWL_DEBUG_TX(priv, "Aborting flush due to RF Kill\n");
goto done; goto done;
} }
......
...@@ -1051,7 +1051,7 @@ int iwl_set_tx_power(struct iwl_priv *priv, s8 tx_power, bool force) ...@@ -1051,7 +1051,7 @@ int iwl_set_tx_power(struct iwl_priv *priv, s8 tx_power, bool force)
return -EINVAL; return -EINVAL;
} }
if (!iwl_is_ready_rf(priv)) if (!iwl_is_ready_rf(priv->shrd))
return -EIO; return -EIO;
/* scan complete and commit_rxon use tx_power_next value, /* scan complete and commit_rxon use tx_power_next value,
...@@ -1131,7 +1131,7 @@ int iwl_mac_conf_tx(struct ieee80211_hw *hw, u16 queue, ...@@ -1131,7 +1131,7 @@ int iwl_mac_conf_tx(struct ieee80211_hw *hw, u16 queue,
IWL_DEBUG_MAC80211(priv, "enter\n"); IWL_DEBUG_MAC80211(priv, "enter\n");
if (!iwl_is_ready_rf(priv)) { if (!iwl_is_ready_rf(priv->shrd)) {
IWL_DEBUG_MAC80211(priv, "leave - RF not ready\n"); IWL_DEBUG_MAC80211(priv, "leave - RF not ready\n");
return -EIO; return -EIO;
} }
...@@ -1237,7 +1237,7 @@ int iwl_mac_add_interface(struct ieee80211_hw *hw, struct ieee80211_vif *vif) ...@@ -1237,7 +1237,7 @@ int iwl_mac_add_interface(struct ieee80211_hw *hw, struct ieee80211_vif *vif)
iwlagn_disable_roc(priv); iwlagn_disable_roc(priv);
if (!iwl_is_ready_rf(priv)) { if (!iwl_is_ready_rf(priv->shrd)) {
IWL_WARN(priv, "Try to add interface when device not ready\n"); IWL_WARN(priv, "Try to add interface when device not ready\n");
err = -EINVAL; err = -EINVAL;
goto out; goto out;
...@@ -1657,7 +1657,7 @@ int iwl_mac_change_interface(struct ieee80211_hw *hw, struct ieee80211_vif *vif, ...@@ -1657,7 +1657,7 @@ int iwl_mac_change_interface(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
mutex_lock(&priv->shrd->mutex); mutex_lock(&priv->shrd->mutex);
if (!ctx->vif || !iwl_is_ready_rf(priv)) { if (!ctx->vif || !iwl_is_ready_rf(priv->shrd)) {
/* /*
* Huh? But wait ... this can maybe happen when * Huh? But wait ... this can maybe happen when
* we're in the middle of a firmware restart! * we're in the middle of a firmware restart!
......
...@@ -393,72 +393,6 @@ static inline void iwl_print_rx_config_cmd(struct iwl_priv *priv, ...@@ -393,72 +393,6 @@ static inline void iwl_print_rx_config_cmd(struct iwl_priv *priv,
int iwl_init_geos(struct iwl_priv *priv); int iwl_init_geos(struct iwl_priv *priv);
void iwl_free_geos(struct iwl_priv *priv); void iwl_free_geos(struct iwl_priv *priv);
/*************** DRIVER STATUS FUNCTIONS *****/
#define STATUS_HCMD_ACTIVE 0 /* host command in progress */
/* 1 is unused (used to be STATUS_HCMD_SYNC_ACTIVE) */
#define STATUS_INT_ENABLED 2
#define STATUS_RF_KILL_HW 3
#define STATUS_CT_KILL 4
#define STATUS_INIT 5
#define STATUS_ALIVE 6
#define STATUS_READY 7
#define STATUS_TEMPERATURE 8
#define STATUS_GEO_CONFIGURED 9
#define STATUS_EXIT_PENDING 10
#define STATUS_STATISTICS 12
#define STATUS_SCANNING 13
#define STATUS_SCAN_ABORTING 14
#define STATUS_SCAN_HW 15
#define STATUS_POWER_PMI 16
#define STATUS_FW_ERROR 17
#define STATUS_DEVICE_ENABLED 18
#define STATUS_CHANNEL_SWITCH_PENDING 19
static inline int iwl_is_ready(struct iwl_priv *priv)
{
/* The adapter is 'ready' if READY and GEO_CONFIGURED bits are
* set but EXIT_PENDING is not */
return test_bit(STATUS_READY, &priv->shrd->status) &&
test_bit(STATUS_GEO_CONFIGURED, &priv->shrd->status) &&
!test_bit(STATUS_EXIT_PENDING, &priv->shrd->status);
}
static inline int iwl_is_alive(struct iwl_priv *priv)
{
return test_bit(STATUS_ALIVE, &priv->shrd->status);
}
static inline int iwl_is_init(struct iwl_priv *priv)
{
return test_bit(STATUS_INIT, &priv->shrd->status);
}
static inline int iwl_is_rfkill_hw(struct iwl_priv *priv)
{
return test_bit(STATUS_RF_KILL_HW, &priv->shrd->status);
}
static inline int iwl_is_rfkill(struct iwl_priv *priv)
{
return iwl_is_rfkill_hw(priv);
}
static inline int iwl_is_ctkill(struct iwl_priv *priv)
{
return test_bit(STATUS_CT_KILL, &priv->shrd->status);
}
static inline int iwl_is_ready_rf(struct iwl_priv *priv)
{
if (iwl_is_rfkill(priv))
return 0;
return iwl_is_ready(priv);
}
extern void iwl_send_bt_config(struct iwl_priv *priv); extern void iwl_send_bt_config(struct iwl_priv *priv);
extern int iwl_send_statistics_request(struct iwl_priv *priv, extern int iwl_send_statistics_request(struct iwl_priv *priv,
u8 flags, bool clear); u8 flags, bool clear);
......
...@@ -740,7 +740,7 @@ static ssize_t iwl_dbgfs_sleep_level_override_write(struct file *file, ...@@ -740,7 +740,7 @@ static ssize_t iwl_dbgfs_sleep_level_override_write(struct file *file,
if (value != -1 && (value < 0 || value >= IWL_POWER_NUM)) if (value != -1 && (value < 0 || value >= IWL_POWER_NUM))
return -EINVAL; return -EINVAL;
if (!iwl_is_ready_rf(priv)) if (!iwl_is_ready_rf(priv->shrd))
return -EAGAIN; return -EAGAIN;
priv->power_data.debug_sleep_level_override = value; priv->power_data.debug_sleep_level_override = value;
...@@ -851,7 +851,7 @@ static ssize_t iwl_dbgfs_ucode_rx_stats_read(struct file *file, ...@@ -851,7 +851,7 @@ static ssize_t iwl_dbgfs_ucode_rx_stats_read(struct file *file,
struct statistics_rx_non_phy *delta_general, *max_general; struct statistics_rx_non_phy *delta_general, *max_general;
struct statistics_rx_ht_phy *ht, *accum_ht, *delta_ht, *max_ht; struct statistics_rx_ht_phy *ht, *accum_ht, *delta_ht, *max_ht;
if (!iwl_is_alive(priv)) if (!iwl_is_alive(priv->shrd))
return -EAGAIN; return -EAGAIN;
buf = kzalloc(bufsz, GFP_KERNEL); buf = kzalloc(bufsz, GFP_KERNEL);
...@@ -1277,7 +1277,7 @@ static ssize_t iwl_dbgfs_ucode_tx_stats_read(struct file *file, ...@@ -1277,7 +1277,7 @@ static ssize_t iwl_dbgfs_ucode_tx_stats_read(struct file *file,
ssize_t ret; ssize_t ret;
struct statistics_tx *tx, *accum_tx, *delta_tx, *max_tx; struct statistics_tx *tx, *accum_tx, *delta_tx, *max_tx;
if (!iwl_is_alive(priv)) if (!iwl_is_alive(priv->shrd))
return -EAGAIN; return -EAGAIN;
buf = kzalloc(bufsz, GFP_KERNEL); buf = kzalloc(bufsz, GFP_KERNEL);
...@@ -1471,7 +1471,7 @@ static ssize_t iwl_dbgfs_ucode_general_stats_read(struct file *file, ...@@ -1471,7 +1471,7 @@ static ssize_t iwl_dbgfs_ucode_general_stats_read(struct file *file,
struct statistics_dbg *dbg, *accum_dbg, *delta_dbg, *max_dbg; struct statistics_dbg *dbg, *accum_dbg, *delta_dbg, *max_dbg;
struct statistics_div *div, *accum_div, *delta_div, *max_div; struct statistics_div *div, *accum_div, *delta_div, *max_div;
if (!iwl_is_alive(priv)) if (!iwl_is_alive(priv->shrd))
return -EAGAIN; return -EAGAIN;
buf = kzalloc(bufsz, GFP_KERNEL); buf = kzalloc(bufsz, GFP_KERNEL);
...@@ -1584,7 +1584,7 @@ static ssize_t iwl_dbgfs_ucode_bt_stats_read(struct file *file, ...@@ -1584,7 +1584,7 @@ static ssize_t iwl_dbgfs_ucode_bt_stats_read(struct file *file,
ssize_t ret; ssize_t ret;
struct statistics_bt_activity *bt, *accum_bt; struct statistics_bt_activity *bt, *accum_bt;
if (!iwl_is_alive(priv)) if (!iwl_is_alive(priv->shrd))
return -EAGAIN; return -EAGAIN;
if (!priv->bt_enable_flag) if (!priv->bt_enable_flag)
...@@ -1672,7 +1672,7 @@ static ssize_t iwl_dbgfs_reply_tx_error_read(struct file *file, ...@@ -1672,7 +1672,7 @@ static ssize_t iwl_dbgfs_reply_tx_error_read(struct file *file,
(sizeof(struct reply_agg_tx_error_statistics) * 24) + 200; (sizeof(struct reply_agg_tx_error_statistics) * 24) + 200;
ssize_t ret; ssize_t ret;
if (!iwl_is_alive(priv)) if (!iwl_is_alive(priv->shrd))
return -EAGAIN; return -EAGAIN;
buf = kzalloc(bufsz, GFP_KERNEL); buf = kzalloc(bufsz, GFP_KERNEL);
...@@ -2259,7 +2259,7 @@ static ssize_t iwl_dbgfs_txfifo_flush_write(struct file *file, ...@@ -2259,7 +2259,7 @@ static ssize_t iwl_dbgfs_txfifo_flush_write(struct file *file,
if (sscanf(buf, "%d", &flush) != 1) if (sscanf(buf, "%d", &flush) != 1)
return -EINVAL; return -EINVAL;
if (iwl_is_rfkill(priv)) if (iwl_is_rfkill(priv->shrd))
return -EFAULT; return -EFAULT;
iwlagn_dev_txfifo_flush(priv, IWL_DROP_ALL); iwlagn_dev_txfifo_flush(priv, IWL_DROP_ALL);
......
...@@ -392,7 +392,7 @@ int iwl_power_set_mode(struct iwl_priv *priv, struct iwl_powertable_cmd *cmd, ...@@ -392,7 +392,7 @@ int iwl_power_set_mode(struct iwl_priv *priv, struct iwl_powertable_cmd *cmd,
if (!memcmp(&priv->power_data.sleep_cmd, cmd, sizeof(*cmd)) && !force) if (!memcmp(&priv->power_data.sleep_cmd, cmd, sizeof(*cmd)) && !force)
return 0; return 0;
if (!iwl_is_ready_rf(priv)) if (!iwl_is_ready_rf(priv->shrd))
return -EIO; return -EIO;
/* scan complete use sleep_power_next, need to be updated */ /* scan complete use sleep_power_next, need to be updated */
......
...@@ -362,7 +362,7 @@ int __must_check iwl_scan_initiate(struct iwl_priv *priv, ...@@ -362,7 +362,7 @@ int __must_check iwl_scan_initiate(struct iwl_priv *priv,
cancel_delayed_work(&priv->scan_check); cancel_delayed_work(&priv->scan_check);
if (!iwl_is_ready_rf(priv)) { if (!iwl_is_ready_rf(priv->shrd)) {
IWL_WARN(priv, "Request scan called when driver not ready.\n"); IWL_WARN(priv, "Request scan called when driver not ready.\n");
return -EIO; return -EIO;
} }
...@@ -606,7 +606,7 @@ static void iwl_bg_scan_completed(struct work_struct *work) ...@@ -606,7 +606,7 @@ static void iwl_bg_scan_completed(struct work_struct *work)
out_settings: out_settings:
/* Can we still talk to firmware ? */ /* Can we still talk to firmware ? */
if (!iwl_is_ready_rf(priv)) if (!iwl_is_ready_rf(priv->shrd))
goto out; goto out;
iwlagn_post_scan(priv); iwlagn_post_scan(priv);
......
...@@ -246,4 +246,69 @@ int iwl_probe(struct iwl_bus *bus, const struct iwl_trans_ops *trans_ops, ...@@ -246,4 +246,69 @@ int iwl_probe(struct iwl_bus *bus, const struct iwl_trans_ops *trans_ops,
struct iwl_cfg *cfg); struct iwl_cfg *cfg);
void __devexit iwl_remove(struct iwl_priv * priv); void __devexit iwl_remove(struct iwl_priv * priv);
/*****************************************************
* DRIVER STATUS FUNCTIONS
******************************************************/
#define STATUS_HCMD_ACTIVE 0 /* host command in progress */
/* 1 is unused (used to be STATUS_HCMD_SYNC_ACTIVE) */
#define STATUS_INT_ENABLED 2
#define STATUS_RF_KILL_HW 3
#define STATUS_CT_KILL 4
#define STATUS_INIT 5
#define STATUS_ALIVE 6
#define STATUS_READY 7
#define STATUS_TEMPERATURE 8
#define STATUS_GEO_CONFIGURED 9
#define STATUS_EXIT_PENDING 10
#define STATUS_STATISTICS 12
#define STATUS_SCANNING 13
#define STATUS_SCAN_ABORTING 14
#define STATUS_SCAN_HW 15
#define STATUS_POWER_PMI 16
#define STATUS_FW_ERROR 17
#define STATUS_DEVICE_ENABLED 18
#define STATUS_CHANNEL_SWITCH_PENDING 19
static inline int iwl_is_ready(struct iwl_shared *shrd)
{
/* The adapter is 'ready' if READY and GEO_CONFIGURED bits are
* set but EXIT_PENDING is not */
return test_bit(STATUS_READY, &shrd->status) &&
test_bit(STATUS_GEO_CONFIGURED, &shrd->status) &&
!test_bit(STATUS_EXIT_PENDING, &shrd->status);
}
static inline int iwl_is_alive(struct iwl_shared *shrd)
{
return test_bit(STATUS_ALIVE, &shrd->status);
}
static inline int iwl_is_init(struct iwl_shared *shrd)
{
return test_bit(STATUS_INIT, &shrd->status);
}
static inline int iwl_is_rfkill_hw(struct iwl_shared *shrd)
{
return test_bit(STATUS_RF_KILL_HW, &shrd->status);
}
static inline int iwl_is_rfkill(struct iwl_shared *shrd)
{
return iwl_is_rfkill_hw(shrd);
}
static inline int iwl_is_ctkill(struct iwl_shared *shrd)
{
return test_bit(STATUS_CT_KILL, &shrd->status);
}
static inline int iwl_is_ready_rf(struct iwl_shared *shrd)
{
if (iwl_is_rfkill(shrd))
return 0;
return iwl_is_ready(shrd);
}
#endif /* #__iwl_shared_h__ */ #endif /* #__iwl_shared_h__ */
...@@ -468,7 +468,7 @@ int iwl_remove_station(struct iwl_priv *priv, const u8 sta_id, ...@@ -468,7 +468,7 @@ int iwl_remove_station(struct iwl_priv *priv, const u8 sta_id,
{ {
unsigned long flags; unsigned long flags;
if (!iwl_is_ready(priv)) { if (!iwl_is_ready(priv->shrd)) {
IWL_DEBUG_INFO(priv, IWL_DEBUG_INFO(priv,
"Unable to remove station %pM, device not ready.\n", "Unable to remove station %pM, device not ready.\n",
addr); addr);
...@@ -572,7 +572,7 @@ void iwl_restore_stations(struct iwl_priv *priv, struct iwl_rxon_context *ctx) ...@@ -572,7 +572,7 @@ void iwl_restore_stations(struct iwl_priv *priv, struct iwl_rxon_context *ctx)
int ret; int ret;
bool send_lq; bool send_lq;
if (!iwl_is_ready(priv)) { if (!iwl_is_ready(priv->shrd)) {
IWL_DEBUG_INFO(priv, "Not ready yet, not restoring any stations.\n"); IWL_DEBUG_INFO(priv, "Not ready yet, not restoring any stations.\n");
return; return;
} }
......
...@@ -599,9 +599,9 @@ static int iwl_enqueue_hcmd(struct iwl_priv *priv, struct iwl_host_cmd *cmd) ...@@ -599,9 +599,9 @@ static int iwl_enqueue_hcmd(struct iwl_priv *priv, struct iwl_host_cmd *cmd)
if (WARN_ON(copy_size > TFD_MAX_PAYLOAD_SIZE)) if (WARN_ON(copy_size > TFD_MAX_PAYLOAD_SIZE))
return -EINVAL; return -EINVAL;
if (iwl_is_rfkill(priv) || iwl_is_ctkill(priv)) { if (iwl_is_rfkill(priv->shrd) || iwl_is_ctkill(priv->shrd)) {
IWL_WARN(priv, "Not sending command - %s KILL\n", IWL_WARN(priv, "Not sending command - %s KILL\n",
iwl_is_rfkill(priv) ? "RF" : "CT"); iwl_is_rfkill(priv->shrd) ? "RF" : "CT");
return -EIO; return -EIO;
} }
......
...@@ -715,7 +715,7 @@ static int iwl_trans_pcie_start_device(struct iwl_priv *priv) ...@@ -715,7 +715,7 @@ static int iwl_trans_pcie_start_device(struct iwl_priv *priv)
else else
set_bit(STATUS_RF_KILL_HW, &priv->shrd->status); set_bit(STATUS_RF_KILL_HW, &priv->shrd->status);
if (iwl_is_rfkill(priv)) { if (iwl_is_rfkill(priv->shrd)) {
wiphy_rfkill_set_hw_state(priv->hw->wiphy, true); wiphy_rfkill_set_hw_state(priv->hw->wiphy, true);
iwl_enable_interrupts(trans(priv)); iwl_enable_interrupts(trans(priv));
return -ERFKILL; return -ERFKILL;
......
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