ar9170: add get_survey callback in order to get channel noise
authorJohn W. Linville <linville@tuxdriver.com>
Wed, 28 Jul 2010 18:47:49 +0000 (14:47 -0400)
committerJohn W. Linville <linville@tuxdriver.com>
Thu, 29 Jul 2010 16:46:47 +0000 (12:46 -0400)
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Acked-by: Christian Lamparter <chunkeey@googlemail.com>
drivers/net/wireless/ath/ar9170/main.c

index 5e2c514..c67b05f 100644 (file)
@@ -1905,6 +1905,24 @@ static int ar9170_get_stats(struct ieee80211_hw *hw,
        return 0;
 }
 
+static int ar9170_get_survey(struct ieee80211_hw *hw, int idx,
+                               struct survey_info *survey)
+{
+       struct ar9170 *ar = hw->priv;
+       struct ieee80211_conf *conf = &hw->conf;
+
+       if (idx != 0)
+               return -ENOENT;
+
+       /* TODO: update noise value, e.g. call ar9170_set_channel */
+
+       survey->channel = conf->channel;
+       survey->filled = SURVEY_INFO_NOISE_DBM;
+       survey->noise = ar->noise[0];
+
+       return 0;
+}
+
 static int ar9170_conf_tx(struct ieee80211_hw *hw, u16 queue,
                          const struct ieee80211_tx_queue_params *param)
 {
@@ -1957,6 +1975,7 @@ static const struct ieee80211_ops ar9170_ops = {
        .get_tsf                = ar9170_op_get_tsf,
        .set_key                = ar9170_set_key,
        .get_stats              = ar9170_get_stats,
+       .get_survey             = ar9170_get_survey,
        .ampdu_action           = ar9170_ampdu_action,
 };