ath9k: add RXLP and RXHP to debugfs counters
authorLuis R. Rodriguez <lrodriguez@atheros.com>
Thu, 15 Apr 2010 21:39:30 +0000 (17:39 -0400)
committerJohn W. Linville <linville@tuxdriver.com>
Fri, 16 Apr 2010 19:43:46 +0000 (15:43 -0400)
Signed-off-by: Luis R. Rodriguez <lrodriguez@atheros.com>
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/ath/ath9k/debug.c
drivers/net/wireless/ath/ath9k/debug.h

index b22d46509b67e95e952e651a1dfc37335589668e..ab59e2ec18c696d81c809ccebb6de5eada70c577 100644 (file)
@@ -179,8 +179,15 @@ void ath_debug_stat_interrupt(struct ath_softc *sc, enum ath9k_int status)
 {
        if (status)
                sc->debug.stats.istats.total++;
-       if (status & ATH9K_INT_RX)
-               sc->debug.stats.istats.rxok++;
+       if (sc->sc_ah->caps.hw_caps & ATH9K_HW_CAP_EDMA) {
+               if (status & ATH9K_INT_RXLP)
+                       sc->debug.stats.istats.rxlp++;
+               if (status & ATH9K_INT_RXHP)
+                       sc->debug.stats.istats.rxhp++;
+       } else {
+               if (status & ATH9K_INT_RX)
+                       sc->debug.stats.istats.rxok++;
+       }
        if (status & ATH9K_INT_RXEOL)
                sc->debug.stats.istats.rxeol++;
        if (status & ATH9K_INT_RXORN)
@@ -222,8 +229,15 @@ static ssize_t read_file_interrupt(struct file *file, char __user *user_buf,
        char buf[512];
        unsigned int len = 0;
 
-       len += snprintf(buf + len, sizeof(buf) - len,
-               "%8s: %10u\n", "RX", sc->debug.stats.istats.rxok);
+       if (sc->sc_ah->caps.hw_caps & ATH9K_HW_CAP_EDMA) {
+               len += snprintf(buf + len, sizeof(buf) - len,
+                       "%8s: %10u\n", "RXLP", sc->debug.stats.istats.rxlp);
+               len += snprintf(buf + len, sizeof(buf) - len,
+                       "%8s: %10u\n", "RXHP", sc->debug.stats.istats.rxhp);
+       } else {
+               len += snprintf(buf + len, sizeof(buf) - len,
+                       "%8s: %10u\n", "RX", sc->debug.stats.istats.rxok);
+       }
        len += snprintf(buf + len, sizeof(buf) - len,
                "%8s: %10u\n", "RXEOL", sc->debug.stats.istats.rxeol);
        len += snprintf(buf + len, sizeof(buf) - len,
index b2af9de755e64c38098b0027fc831ff5ce4f78eb..c545960e7ec5190fe045117e9abfb70315daa946 100644 (file)
@@ -35,6 +35,8 @@ struct ath_buf;
  * struct ath_interrupt_stats - Contains statistics about interrupts
  * @total: Total no. of interrupts generated so far
  * @rxok: RX with no errors
+ * @rxlp: RX with low priority RX
+ * @rxhp: RX with high priority, uapsd only
  * @rxeol: RX with no more RXDESC available
  * @rxorn: RX FIFO overrun
  * @txok: TX completed at the requested rate
@@ -55,6 +57,8 @@ struct ath_buf;
 struct ath_interrupt_stats {
        u32 total;
        u32 rxok;
+       u32 rxlp;
+       u32 rxhp;
        u32 rxeol;
        u32 rxorn;
        u32 txok;