Commit e691e19e authored by Reinette Chatre's avatar Reinette Chatre

Merge branch 'wireless-2.6' into wireless-next-2.6

parents 47399f1a 062bee44
...@@ -126,6 +126,7 @@ int ath5k_hw_attach(struct ath5k_softc *sc) ...@@ -126,6 +126,7 @@ int ath5k_hw_attach(struct ath5k_softc *sc)
ah->ah_ant_mode = AR5K_ANTMODE_DEFAULT; ah->ah_ant_mode = AR5K_ANTMODE_DEFAULT;
ah->ah_noise_floor = -95; /* until first NF calibration is run */ ah->ah_noise_floor = -95; /* until first NF calibration is run */
sc->ani_state.ani_mode = ATH5K_ANI_MODE_AUTO; sc->ani_state.ani_mode = ATH5K_ANI_MODE_AUTO;
ah->ah_current_channel = &sc->channels[0];
/* /*
* Find the mac version * Find the mac version
......
...@@ -519,6 +519,7 @@ void ath_deinit_leds(struct ath_softc *sc); ...@@ -519,6 +519,7 @@ void ath_deinit_leds(struct ath_softc *sc);
#define SC_OP_TSF_RESET BIT(11) #define SC_OP_TSF_RESET BIT(11)
#define SC_OP_BT_PRIORITY_DETECTED BIT(12) #define SC_OP_BT_PRIORITY_DETECTED BIT(12)
#define SC_OP_BT_SCAN BIT(13) #define SC_OP_BT_SCAN BIT(13)
#define SC_OP_ANI_RUN BIT(14)
/* Powersave flags */ /* Powersave flags */
#define PS_WAIT_FOR_BEACON BIT(0) #define PS_WAIT_FOR_BEACON BIT(0)
......
...@@ -452,6 +452,10 @@ static void ath_start_ani(struct ath_common *common) ...@@ -452,6 +452,10 @@ static void ath_start_ani(struct ath_common *common)
{ {
struct ath_hw *ah = common->ah; struct ath_hw *ah = common->ah;
unsigned long timestamp = jiffies_to_msecs(jiffies); unsigned long timestamp = jiffies_to_msecs(jiffies);
struct ath_softc *sc = (struct ath_softc *) common->priv;
if (!(sc->sc_flags & SC_OP_ANI_RUN))
return;
common->ani.longcal_timer = timestamp; common->ani.longcal_timer = timestamp;
common->ani.shortcal_timer = timestamp; common->ani.shortcal_timer = timestamp;
...@@ -767,11 +771,13 @@ static void ath9k_bss_assoc_info(struct ath_softc *sc, ...@@ -767,11 +771,13 @@ static void ath9k_bss_assoc_info(struct ath_softc *sc,
/* Reset rssi stats */ /* Reset rssi stats */
sc->sc_ah->stats.avgbrssi = ATH_RSSI_DUMMY_MARKER; sc->sc_ah->stats.avgbrssi = ATH_RSSI_DUMMY_MARKER;
sc->sc_flags |= SC_OP_ANI_RUN;
ath_start_ani(common); ath_start_ani(common);
} else { } else {
ath_print(common, ATH_DBG_CONFIG, "Bss Info DISASSOC\n"); ath_print(common, ATH_DBG_CONFIG, "Bss Info DISASSOC\n");
common->curaid = 0; common->curaid = 0;
/* Stop ANI */ /* Stop ANI */
sc->sc_flags &= ~SC_OP_ANI_RUN;
del_timer_sync(&common->ani.timer); del_timer_sync(&common->ani.timer);
} }
} }
...@@ -1377,8 +1383,10 @@ static int ath9k_add_interface(struct ieee80211_hw *hw, ...@@ -1377,8 +1383,10 @@ static int ath9k_add_interface(struct ieee80211_hw *hw,
if (vif->type == NL80211_IFTYPE_AP || if (vif->type == NL80211_IFTYPE_AP ||
vif->type == NL80211_IFTYPE_ADHOC || vif->type == NL80211_IFTYPE_ADHOC ||
vif->type == NL80211_IFTYPE_MONITOR) vif->type == NL80211_IFTYPE_MONITOR) {
sc->sc_flags |= SC_OP_ANI_RUN;
ath_start_ani(common); ath_start_ani(common);
}
out: out:
mutex_unlock(&sc->mutex); mutex_unlock(&sc->mutex);
...@@ -1399,6 +1407,7 @@ static void ath9k_remove_interface(struct ieee80211_hw *hw, ...@@ -1399,6 +1407,7 @@ static void ath9k_remove_interface(struct ieee80211_hw *hw,
mutex_lock(&sc->mutex); mutex_lock(&sc->mutex);
/* Stop ANI */ /* Stop ANI */
sc->sc_flags &= ~SC_OP_ANI_RUN;
del_timer_sync(&common->ani.timer); del_timer_sync(&common->ani.timer);
/* Reclaim beacon resources */ /* Reclaim beacon resources */
......
...@@ -214,11 +214,7 @@ static void iwlagn_chain_noise_reset(struct iwl_priv *priv) ...@@ -214,11 +214,7 @@ static void iwlagn_chain_noise_reset(struct iwl_priv *priv)
static void iwlagn_rts_tx_cmd_flag(struct ieee80211_tx_info *info, static void iwlagn_rts_tx_cmd_flag(struct ieee80211_tx_info *info,
__le32 *tx_flags) __le32 *tx_flags)
{ {
if ((info->control.rates[0].flags & IEEE80211_TX_RC_USE_RTS_CTS) || *tx_flags |= TX_CMD_FLG_RTS_CTS_MSK;
(info->control.rates[0].flags & IEEE80211_TX_RC_USE_CTS_PROTECT))
*tx_flags |= TX_CMD_FLG_RTS_CTS_MSK;
else
*tx_flags &= ~TX_CMD_FLG_RTS_CTS_MSK;
} }
/* Calc max signal level (dBm) among 3 possible receivers */ /* Calc max signal level (dBm) among 3 possible receivers */
......
...@@ -1331,7 +1331,6 @@ void iwl_configure_filter(struct ieee80211_hw *hw, ...@@ -1331,7 +1331,6 @@ void iwl_configure_filter(struct ieee80211_hw *hw,
changed_flags, *total_flags); changed_flags, *total_flags);
CHK(FIF_OTHER_BSS | FIF_PROMISC_IN_BSS, RXON_FILTER_PROMISC_MSK); CHK(FIF_OTHER_BSS | FIF_PROMISC_IN_BSS, RXON_FILTER_PROMISC_MSK);
CHK(FIF_ALLMULTI, RXON_FILTER_ACCEPT_GRP_MSK);
CHK(FIF_CONTROL, RXON_FILTER_CTL2HOST_MSK); CHK(FIF_CONTROL, RXON_FILTER_CTL2HOST_MSK);
CHK(FIF_BCN_PRBRESP_PROMISC, RXON_FILTER_BCON_AWARE_MSK); CHK(FIF_BCN_PRBRESP_PROMISC, RXON_FILTER_BCON_AWARE_MSK);
...@@ -1346,6 +1345,12 @@ void iwl_configure_filter(struct ieee80211_hw *hw, ...@@ -1346,6 +1345,12 @@ void iwl_configure_filter(struct ieee80211_hw *hw,
mutex_unlock(&priv->mutex); mutex_unlock(&priv->mutex);
/*
* Receiving all multicast frames is always enabled by the
* default flags setup in iwl_connection_init_rx_config()
* since we currently do not support programming multicast
* filters into the device.
*/
*total_flags &= FIF_OTHER_BSS | FIF_ALLMULTI | FIF_PROMISC_IN_BSS | *total_flags &= FIF_OTHER_BSS | FIF_ALLMULTI | FIF_PROMISC_IN_BSS |
FIF_BCN_PRBRESP_PROMISC | FIF_CONTROL; FIF_BCN_PRBRESP_PROMISC | FIF_CONTROL;
} }
......
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