ath9k: add CAB queue info to debugfs
authorFelix Fietkau <nbd@openwrt.org>
Tue, 6 Aug 2013 12:18:05 +0000 (14:18 +0200)
committerJohn W. Linville <linville@tuxdriver.com>
Fri, 9 Aug 2013 19:58:07 +0000 (15:58 -0400)
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/ath/ath9k/debug.c

index 414584ed3f54cf0c043b8014c2affde901a8d736..c10cec5650c6abf1808c739eb8913c2ce2fb66ee 100644 (file)
@@ -732,6 +732,28 @@ static ssize_t read_file_xmit(struct file *file, char __user *user_buf,
        return retval;
 }
 
+static ssize_t print_queue(struct ath_softc *sc, struct ath_txq *txq,
+                          char *buf, ssize_t size)
+{
+       ssize_t len = 0;
+
+       ath_txq_lock(sc, txq);
+
+       len += snprintf(buf + len, size - len, "%s: %d ",
+                       "qnum", txq->axq_qnum);
+       len += snprintf(buf + len, size - len, "%s: %2d ",
+                       "qdepth", txq->axq_depth);
+       len += snprintf(buf + len, size - len, "%s: %2d ",
+                       "ampdu-depth", txq->axq_ampdu_depth);
+       len += snprintf(buf + len, size - len, "%s: %3d ",
+                       "pending", txq->pending_frames);
+       len += snprintf(buf + len, size - len, "%s: %d\n",
+                       "stopped", txq->stopped);
+
+       ath_txq_unlock(sc, txq);
+       return len;
+}
+
 static ssize_t read_file_queues(struct file *file, char __user *user_buf,
                                size_t count, loff_t *ppos)
 {
@@ -749,24 +771,13 @@ static ssize_t read_file_queues(struct file *file, char __user *user_buf,
 
        for (i = 0; i < IEEE80211_NUM_ACS; i++) {
                txq = sc->tx.txq_map[i];
-               len += snprintf(buf + len, size - len, "(%s): ", qname[i]);
-
-               ath_txq_lock(sc, txq);
-
-               len += snprintf(buf + len, size - len, "%s: %d ",
-                               "qnum", txq->axq_qnum);
-               len += snprintf(buf + len, size - len, "%s: %2d ",
-                               "qdepth", txq->axq_depth);
-               len += snprintf(buf + len, size - len, "%s: %2d ",
-                               "ampdu-depth", txq->axq_ampdu_depth);
-               len += snprintf(buf + len, size - len, "%s: %3d ",
-                               "pending", txq->pending_frames);
-               len += snprintf(buf + len, size - len, "%s: %d\n",
-                               "stopped", txq->stopped);
-
-               ath_txq_unlock(sc, txq);
+               len += snprintf(buf + len, size - len, "(%s):  ", qname[i]);
+               len += print_queue(sc, txq, buf + len, size - len);
        }
 
+       len += snprintf(buf + len, size - len, "(CAB): ");
+       len += print_queue(sc, sc->beacon.cabq, buf + len, size - len);
+
        if (len > size)
                len = size;