wil6210: report association ID (AID) per station in debugfs
authorLior David <qca_liord@qca.qualcomm.com>
Fri, 20 Jan 2017 11:49:51 +0000 (13:49 +0200)
committerKalle Valo <kvalo@qca.qualcomm.com>
Fri, 27 Jan 2017 17:49:55 +0000 (19:49 +0200)
Add reporting of the association ID (AID) for each station
as part of the stations file in the debugfs.
Valid AID values are 1-254. 0 is reported if the AID
is unknown or not reported by firmware.

Signed-off-by: Lior David <qca_liord@qca.qualcomm.com>
Signed-off-by: Maya Erez <qca_merez@qca.qualcomm.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
drivers/net/wireless/ath/wil6210/debugfs.c
drivers/net/wireless/ath/wil6210/wil6210.h
drivers/net/wireless/ath/wil6210/wmi.c

index db6527ada9467f7491a7551325f3b1c1b4850022..bb8a59a6ed74cc0a3f89665199e3b671261060ad 100644 (file)
@@ -1379,6 +1379,7 @@ __acquires(&p->tid_rx_lock) __releases(&p->tid_rx_lock)
        for (i = 0; i < ARRAY_SIZE(wil->sta); i++) {
                struct wil_sta_info *p = &wil->sta[i];
                char *status = "unknown";
+               u8 aid = 0;
 
                switch (p->status) {
                case wil_sta_unused:
@@ -1389,9 +1390,10 @@ __acquires(&p->tid_rx_lock) __releases(&p->tid_rx_lock)
                        break;
                case wil_sta_connected:
                        status = "connected";
+                       aid = p->aid;
                        break;
                }
-               seq_printf(s, "[%d] %pM %s\n", i, p->addr, status);
+               seq_printf(s, "[%d] %pM %s AID %d\n", i, p->addr, status, aid);
 
                if (p->status == wil_sta_connected) {
                        spin_lock_bh(&p->tid_rx_lock);
index 65f201631fe9a099d924acd69617bdfc7a076e0c..6dbaff5ceff1f02086ea1fe9e35b4a08cce18bee 100644 (file)
@@ -523,6 +523,7 @@ struct wil_sta_info {
        unsigned long tid_rx_stop_requested[BITS_TO_LONGS(WIL_STA_TID_NUM)];
        struct wil_tid_crypto_rx tid_crypto_rx[WIL_STA_TID_NUM];
        struct wil_tid_crypto_rx group_crypto_rx;
+       u8 aid; /* 1-254; 0 if unknown/not reported */
 };
 
 enum {
index d30b3fca77499887f6ac1cbf505a791d396ba52c..598096f17c18ff44f2acf9fc2d764825c2154834 100644 (file)
@@ -495,8 +495,8 @@ static void wmi_evt_connect(struct wil6210_priv *wil, int id, void *d, int len)
        }
 
        ch = evt->channel + 1;
-       wil_info(wil, "Connect %pM channel [%d] cid %d\n",
-                evt->bssid, ch, evt->cid);
+       wil_info(wil, "Connect %pM channel [%d] cid %d aid %d\n",
+                evt->bssid, ch, evt->cid, evt->aid);
        wil_hex_dump_wmi("connect AI : ", DUMP_PREFIX_OFFSET, 16, 1,
                         evt->assoc_info, len - sizeof(*evt), true);
 
@@ -604,6 +604,7 @@ static void wmi_evt_connect(struct wil6210_priv *wil, int id, void *d, int len)
        }
 
        wil->sta[evt->cid].status = wil_sta_connected;
+       wil->sta[evt->cid].aid = evt->aid;
        set_bit(wil_status_fwconnected, wil->status);
        wil_update_net_queues_bh(wil, NULL, false);