|
@@ -241,6 +241,8 @@ static int ath5k_set_key(struct ieee80211_hw *hw,
|
|
|
struct ieee80211_key_conf *key);
|
|
|
static int ath5k_get_stats(struct ieee80211_hw *hw,
|
|
|
struct ieee80211_low_level_stats *stats);
|
|
|
+static int ath5k_get_survey(struct ieee80211_hw *hw,
|
|
|
+ int idx, struct survey_info *survey);
|
|
|
static u64 ath5k_get_tsf(struct ieee80211_hw *hw);
|
|
|
static void ath5k_set_tsf(struct ieee80211_hw *hw, u64 tsf);
|
|
|
static void ath5k_reset_tsf(struct ieee80211_hw *hw);
|
|
@@ -266,6 +268,7 @@ static const struct ieee80211_ops ath5k_hw_ops = {
|
|
|
.configure_filter = ath5k_configure_filter,
|
|
|
.set_key = ath5k_set_key,
|
|
|
.get_stats = ath5k_get_stats,
|
|
|
+ .get_survey = ath5k_get_survey,
|
|
|
.conf_tx = NULL,
|
|
|
.get_tsf = ath5k_get_tsf,
|
|
|
.set_tsf = ath5k_set_tsf,
|
|
@@ -3294,6 +3297,22 @@ ath5k_get_stats(struct ieee80211_hw *hw,
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
|
+static int ath5k_get_survey(struct ieee80211_hw *hw, int idx,
|
|
|
+ struct survey_info *survey)
|
|
|
+{
|
|
|
+ struct ath5k_softc *sc = hw->priv;
|
|
|
+ struct ieee80211_conf *conf = &hw->conf;
|
|
|
+
|
|
|
+ if (idx != 0)
|
|
|
+ return -ENOENT;
|
|
|
+
|
|
|
+ survey->channel = conf->channel;
|
|
|
+ survey->filled = SURVEY_INFO_NOISE_DBM;
|
|
|
+ survey->noise = sc->ah->ah_noise_floor;
|
|
|
+
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+
|
|
|
static u64
|
|
|
ath5k_get_tsf(struct ieee80211_hw *hw)
|
|
|
{
|