Commit 92c3f7ef authored by Oleksij Rempel's avatar Oleksij Rempel Committed by John W. Linville

ath9k_htc: use common->op_flags

Signed-off-by: default avatarOleksij Rempel <linux@rempel-privat.de>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent eefa01dd
...@@ -437,11 +437,8 @@ static inline void ath9k_htc_stop_btcoex(struct ath9k_htc_priv *priv) ...@@ -437,11 +437,8 @@ static inline void ath9k_htc_stop_btcoex(struct ath9k_htc_priv *priv)
} }
#endif /* CONFIG_ATH9K_BTCOEX_SUPPORT */ #endif /* CONFIG_ATH9K_BTCOEX_SUPPORT */
#define OP_INVALID BIT(0)
#define OP_SCANNING BIT(1)
#define OP_BT_PRIORITY_DETECTED BIT(3) #define OP_BT_PRIORITY_DETECTED BIT(3)
#define OP_BT_SCAN BIT(4) #define OP_BT_SCAN BIT(4)
#define OP_ANI_RUNNING BIT(5)
#define OP_TSF_RESET BIT(6) #define OP_TSF_RESET BIT(6)
struct ath9k_htc_priv { struct ath9k_htc_priv {
......
...@@ -343,7 +343,7 @@ static void ath9k_htc_send_beacon(struct ath9k_htc_priv *priv, ...@@ -343,7 +343,7 @@ static void ath9k_htc_send_beacon(struct ath9k_htc_priv *priv,
vif = priv->beacon.bslot[slot]; vif = priv->beacon.bslot[slot];
avp = (struct ath9k_htc_vif *)vif->drv_priv; avp = (struct ath9k_htc_vif *)vif->drv_priv;
if (unlikely(test_bit(OP_SCANNING, &priv->op_flags))) { if (unlikely(test_bit(ATH_OP_SCANNING, &common->op_flags))) {
spin_unlock_bh(&priv->beacon_lock); spin_unlock_bh(&priv->beacon_lock);
return; return;
} }
......
...@@ -459,8 +459,6 @@ static int ath9k_init_priv(struct ath9k_htc_priv *priv, ...@@ -459,8 +459,6 @@ static int ath9k_init_priv(struct ath9k_htc_priv *priv,
struct ath_common *common; struct ath_common *common;
int i, ret = 0, csz = 0; int i, ret = 0, csz = 0;
set_bit(OP_INVALID, &priv->op_flags);
ah = kzalloc(sizeof(struct ath_hw), GFP_KERNEL); ah = kzalloc(sizeof(struct ath_hw), GFP_KERNEL);
if (!ah) if (!ah)
return -ENOMEM; return -ENOMEM;
...@@ -485,6 +483,7 @@ static int ath9k_init_priv(struct ath9k_htc_priv *priv, ...@@ -485,6 +483,7 @@ static int ath9k_init_priv(struct ath9k_htc_priv *priv,
common->priv = priv; common->priv = priv;
common->debug_mask = ath9k_debug; common->debug_mask = ath9k_debug;
common->btcoex_enabled = ath9k_htc_btcoex_enable == 1; common->btcoex_enabled = ath9k_htc_btcoex_enable == 1;
set_bit(ATH_OP_INVALID, &common->op_flags);
spin_lock_init(&priv->beacon_lock); spin_lock_init(&priv->beacon_lock);
spin_lock_init(&priv->tx.tx_lock); spin_lock_init(&priv->tx.tx_lock);
......
...@@ -250,7 +250,7 @@ static int ath9k_htc_set_channel(struct ath9k_htc_priv *priv, ...@@ -250,7 +250,7 @@ static int ath9k_htc_set_channel(struct ath9k_htc_priv *priv,
u8 cmd_rsp; u8 cmd_rsp;
int ret; int ret;
if (test_bit(OP_INVALID, &priv->op_flags)) if (test_bit(ATH_OP_INVALID, &common->op_flags))
return -EIO; return -EIO;
fastcc = !!(hw->conf.flags & IEEE80211_CONF_OFFCHANNEL); fastcc = !!(hw->conf.flags & IEEE80211_CONF_OFFCHANNEL);
...@@ -304,7 +304,7 @@ static int ath9k_htc_set_channel(struct ath9k_htc_priv *priv, ...@@ -304,7 +304,7 @@ static int ath9k_htc_set_channel(struct ath9k_htc_priv *priv,
htc_start(priv->htc); htc_start(priv->htc);
if (!test_bit(OP_SCANNING, &priv->op_flags) && if (!test_bit(ATH_OP_SCANNING, &common->op_flags) &&
!(hw->conf.flags & IEEE80211_CONF_OFFCHANNEL)) !(hw->conf.flags & IEEE80211_CONF_OFFCHANNEL))
ath9k_htc_vif_reconfig(priv); ath9k_htc_vif_reconfig(priv);
...@@ -748,7 +748,7 @@ void ath9k_htc_start_ani(struct ath9k_htc_priv *priv) ...@@ -748,7 +748,7 @@ void ath9k_htc_start_ani(struct ath9k_htc_priv *priv)
common->ani.shortcal_timer = timestamp; common->ani.shortcal_timer = timestamp;
common->ani.checkani_timer = timestamp; common->ani.checkani_timer = timestamp;
set_bit(OP_ANI_RUNNING, &priv->op_flags); set_bit(ATH_OP_ANI_RUN, &common->op_flags);
ieee80211_queue_delayed_work(common->hw, &priv->ani_work, ieee80211_queue_delayed_work(common->hw, &priv->ani_work,
msecs_to_jiffies(ATH_ANI_POLLINTERVAL)); msecs_to_jiffies(ATH_ANI_POLLINTERVAL));
...@@ -756,8 +756,9 @@ void ath9k_htc_start_ani(struct ath9k_htc_priv *priv) ...@@ -756,8 +756,9 @@ void ath9k_htc_start_ani(struct ath9k_htc_priv *priv)
void ath9k_htc_stop_ani(struct ath9k_htc_priv *priv) void ath9k_htc_stop_ani(struct ath9k_htc_priv *priv)
{ {
struct ath_common *common = ath9k_hw_common(priv->ah);
cancel_delayed_work_sync(&priv->ani_work); cancel_delayed_work_sync(&priv->ani_work);
clear_bit(OP_ANI_RUNNING, &priv->op_flags); clear_bit(ATH_OP_ANI_RUN, &common->op_flags);
} }
void ath9k_htc_ani_work(struct work_struct *work) void ath9k_htc_ani_work(struct work_struct *work)
...@@ -942,7 +943,7 @@ static int ath9k_htc_start(struct ieee80211_hw *hw) ...@@ -942,7 +943,7 @@ static int ath9k_htc_start(struct ieee80211_hw *hw)
ath_dbg(common, CONFIG, ath_dbg(common, CONFIG,
"Failed to update capability in target\n"); "Failed to update capability in target\n");
clear_bit(OP_INVALID, &priv->op_flags); clear_bit(ATH_OP_INVALID, &common->op_flags);
htc_start(priv->htc); htc_start(priv->htc);
spin_lock_bh(&priv->tx.tx_lock); spin_lock_bh(&priv->tx.tx_lock);
...@@ -971,7 +972,7 @@ static void ath9k_htc_stop(struct ieee80211_hw *hw) ...@@ -971,7 +972,7 @@ static void ath9k_htc_stop(struct ieee80211_hw *hw)
mutex_lock(&priv->mutex); mutex_lock(&priv->mutex);
if (test_bit(OP_INVALID, &priv->op_flags)) { if (test_bit(ATH_OP_INVALID, &common->op_flags)) {
ath_dbg(common, ANY, "Device not present\n"); ath_dbg(common, ANY, "Device not present\n");
mutex_unlock(&priv->mutex); mutex_unlock(&priv->mutex);
return; return;
...@@ -1013,7 +1014,7 @@ static void ath9k_htc_stop(struct ieee80211_hw *hw) ...@@ -1013,7 +1014,7 @@ static void ath9k_htc_stop(struct ieee80211_hw *hw)
ath9k_htc_ps_restore(priv); ath9k_htc_ps_restore(priv);
ath9k_htc_setpower(priv, ATH9K_PM_FULL_SLEEP); ath9k_htc_setpower(priv, ATH9K_PM_FULL_SLEEP);
set_bit(OP_INVALID, &priv->op_flags); set_bit(ATH_OP_INVALID, &common->op_flags);
ath_dbg(common, CONFIG, "Driver halt\n"); ath_dbg(common, CONFIG, "Driver halt\n");
mutex_unlock(&priv->mutex); mutex_unlock(&priv->mutex);
...@@ -1087,7 +1088,7 @@ static int ath9k_htc_add_interface(struct ieee80211_hw *hw, ...@@ -1087,7 +1088,7 @@ static int ath9k_htc_add_interface(struct ieee80211_hw *hw,
ath9k_htc_set_opmode(priv); ath9k_htc_set_opmode(priv);
if ((priv->ah->opmode == NL80211_IFTYPE_AP) && if ((priv->ah->opmode == NL80211_IFTYPE_AP) &&
!test_bit(OP_ANI_RUNNING, &priv->op_flags)) { !test_bit(ATH_OP_ANI_RUN, &common->op_flags)) {
ath9k_hw_set_tsfadjust(priv->ah, true); ath9k_hw_set_tsfadjust(priv->ah, true);
ath9k_htc_start_ani(priv); ath9k_htc_start_ani(priv);
} }
...@@ -1245,13 +1246,14 @@ static void ath9k_htc_configure_filter(struct ieee80211_hw *hw, ...@@ -1245,13 +1246,14 @@ static void ath9k_htc_configure_filter(struct ieee80211_hw *hw,
u64 multicast) u64 multicast)
{ {
struct ath9k_htc_priv *priv = hw->priv; struct ath9k_htc_priv *priv = hw->priv;
struct ath_common *common = ath9k_hw_common(priv->ah);
u32 rfilt; u32 rfilt;
mutex_lock(&priv->mutex); mutex_lock(&priv->mutex);
changed_flags &= SUPPORTED_FILTERS; changed_flags &= SUPPORTED_FILTERS;
*total_flags &= SUPPORTED_FILTERS; *total_flags &= SUPPORTED_FILTERS;
if (test_bit(OP_INVALID, &priv->op_flags)) { if (test_bit(ATH_OP_INVALID, &common->op_flags)) {
ath_dbg(ath9k_hw_common(priv->ah), ANY, ath_dbg(ath9k_hw_common(priv->ah), ANY,
"Unable to configure filter on invalid state\n"); "Unable to configure filter on invalid state\n");
mutex_unlock(&priv->mutex); mutex_unlock(&priv->mutex);
...@@ -1670,10 +1672,11 @@ static int ath9k_htc_ampdu_action(struct ieee80211_hw *hw, ...@@ -1670,10 +1672,11 @@ static int ath9k_htc_ampdu_action(struct ieee80211_hw *hw,
static void ath9k_htc_sw_scan_start(struct ieee80211_hw *hw) static void ath9k_htc_sw_scan_start(struct ieee80211_hw *hw)
{ {
struct ath9k_htc_priv *priv = hw->priv; struct ath9k_htc_priv *priv = hw->priv;
struct ath_common *common = ath9k_hw_common(priv->ah);
mutex_lock(&priv->mutex); mutex_lock(&priv->mutex);
spin_lock_bh(&priv->beacon_lock); spin_lock_bh(&priv->beacon_lock);
set_bit(OP_SCANNING, &priv->op_flags); set_bit(ATH_OP_SCANNING, &common->op_flags);
spin_unlock_bh(&priv->beacon_lock); spin_unlock_bh(&priv->beacon_lock);
cancel_work_sync(&priv->ps_work); cancel_work_sync(&priv->ps_work);
ath9k_htc_stop_ani(priv); ath9k_htc_stop_ani(priv);
...@@ -1683,10 +1686,11 @@ static void ath9k_htc_sw_scan_start(struct ieee80211_hw *hw) ...@@ -1683,10 +1686,11 @@ static void ath9k_htc_sw_scan_start(struct ieee80211_hw *hw)
static void ath9k_htc_sw_scan_complete(struct ieee80211_hw *hw) static void ath9k_htc_sw_scan_complete(struct ieee80211_hw *hw)
{ {
struct ath9k_htc_priv *priv = hw->priv; struct ath9k_htc_priv *priv = hw->priv;
struct ath_common *common = ath9k_hw_common(priv->ah);
mutex_lock(&priv->mutex); mutex_lock(&priv->mutex);
spin_lock_bh(&priv->beacon_lock); spin_lock_bh(&priv->beacon_lock);
clear_bit(OP_SCANNING, &priv->op_flags); clear_bit(ATH_OP_SCANNING, &common->op_flags);
spin_unlock_bh(&priv->beacon_lock); spin_unlock_bh(&priv->beacon_lock);
ath9k_htc_ps_wakeup(priv); ath9k_htc_ps_wakeup(priv);
ath9k_htc_vif_reconfig(priv); ath9k_htc_vif_reconfig(priv);
......
...@@ -924,9 +924,10 @@ static void ath9k_htc_opmode_init(struct ath9k_htc_priv *priv) ...@@ -924,9 +924,10 @@ static void ath9k_htc_opmode_init(struct ath9k_htc_priv *priv)
void ath9k_host_rx_init(struct ath9k_htc_priv *priv) void ath9k_host_rx_init(struct ath9k_htc_priv *priv)
{ {
struct ath_common *common = ath9k_hw_common(priv->ah);
ath9k_hw_rxena(priv->ah); ath9k_hw_rxena(priv->ah);
ath9k_htc_opmode_init(priv); ath9k_htc_opmode_init(priv);
ath9k_hw_startpcureceive(priv->ah, test_bit(OP_SCANNING, &priv->op_flags)); ath9k_hw_startpcureceive(priv->ah, test_bit(ATH_OP_SCANNING, &common->op_flags));
} }
static inline void convert_htc_flag(struct ath_rx_status *rx_stats, static inline void convert_htc_flag(struct ath_rx_status *rx_stats,
......
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