carl9170: don't load bogus nf of chain 1
Christian Lamparter [Fri, 17 Sep 2010 20:42:37 +0000 (22:42 +0200)]
According to Atheros, chain 1 is not connected.

Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

drivers/net/wireless/ath/carl9170/carl9170.h
drivers/net/wireless/ath/carl9170/debug.c
drivers/net/wireless/ath/carl9170/phy.c

index 9f1d603..d43675a 100644 (file)
@@ -321,7 +321,7 @@ struct ar9170 {
 
        /* PHY */
        struct ieee80211_channel *channel;
-       int noise[6];
+       int noise[4];
        unsigned int chan_fail;
        unsigned int total_chan_fail;
        u8 heavy_clip;
index 3e9b0e8..19b4836 100644 (file)
@@ -436,12 +436,10 @@ static char *carl9170_debugfs_phy_noise_read(struct ar9170 *ar, char *buf,
                return buf;
        }
 
-       ADD(buf, *len, bufsize, "Chain 1: %10d dBm, ext. chan.:%10d dBm\n",
-           ar->noise[1], ar->noise[4]);
+       ADD(buf, *len, bufsize, "Chain 0: %10d dBm, ext. chan.:%10d dBm\n",
+           ar->noise[0], ar->noise[2]);
        ADD(buf, *len, bufsize, "Chain 2: %10d dBm, ext. chan.:%10d dBm\n",
-           ar->noise[2], ar->noise[5]);
-       ADD(buf, *len, bufsize, "Combined %10d dBm, ext. chan.:%10d dBm\n",
-           ar->noise[0], ar->noise[3]);
+           ar->noise[1], ar->noise[3]);
 
        return buf;
 }
index 7df8f71..fa349b8 100644 (file)
@@ -1566,9 +1566,8 @@ static int carl9170_calc_noise_dbm(u32 raw_noise)
 int carl9170_get_noisefloor(struct ar9170 *ar)
 {
        static const u32 phy_regs[] = {
-               AR9170_PHY_REG_CCA, AR9170_PHY_REG_CH1_CCA,
-               AR9170_PHY_REG_CH2_CCA, AR9170_PHY_REG_EXT_CCA,
-               AR9170_PHY_REG_CH1_EXT_CCA, AR9170_PHY_REG_CH2_EXT_CCA };
+               AR9170_PHY_REG_CCA, AR9170_PHY_REG_CH2_CCA,
+               AR9170_PHY_REG_EXT_CCA, AR9170_PHY_REG_CH2_EXT_CCA };
        u32 phy_res[ARRAY_SIZE(phy_regs)];
        int err, i;
 
@@ -1578,12 +1577,12 @@ int carl9170_get_noisefloor(struct ar9170 *ar)
        if (err)
                return err;
 
-       for (i = 0; i < 3; i++) {
+       for (i = 0; i < 2; i++) {
                ar->noise[i] = carl9170_calc_noise_dbm(
                        (phy_res[i] >> 19) & 0x1ff);
 
-               ar->noise[i + 3] = carl9170_calc_noise_dbm(
-                       (phy_res[i + 3] >> 23) & 0x1ff);
+               ar->noise[i + 2] = carl9170_calc_noise_dbm(
+                       (phy_res[i + 2] >> 23) & 0x1ff);
        }
 
        return 0;