diff options
-rw-r--r-- | drivers/net/wireless/ath/ath9k/ath9k.h | 1 | ||||
-rw-r--r-- | drivers/net/wireless/ath/ath9k/debug.c | 13 | ||||
-rw-r--r-- | drivers/net/wireless/ath/ath9k/main.c | 6 |
3 files changed, 14 insertions, 6 deletions
diff --git a/drivers/net/wireless/ath/ath9k/ath9k.h b/drivers/net/wireless/ath/ath9k/ath9k.h index 4415e89bd3d9..93b45b4b3033 100644 --- a/drivers/net/wireless/ath/ath9k/ath9k.h +++ b/drivers/net/wireless/ath/ath9k/ath9k.h | |||
@@ -253,6 +253,7 @@ struct ath_node { | |||
253 | #ifdef CONFIG_ATH9K_DEBUGFS | 253 | #ifdef CONFIG_ATH9K_DEBUGFS |
254 | struct list_head list; /* for sc->nodes */ | 254 | struct list_head list; /* for sc->nodes */ |
255 | struct ieee80211_sta *sta; /* station struct we're part of */ | 255 | struct ieee80211_sta *sta; /* station struct we're part of */ |
256 | struct ieee80211_vif *vif; /* interface with which we're associated */ | ||
256 | #endif | 257 | #endif |
257 | struct ath_atx_tid tid[WME_NUM_TID]; | 258 | struct ath_atx_tid tid[WME_NUM_TID]; |
258 | struct ath_atx_ac ac[WME_NUM_AC]; | 259 | struct ath_atx_ac ac[WME_NUM_AC]; |
diff --git a/drivers/net/wireless/ath/ath9k/debug.c b/drivers/net/wireless/ath/ath9k/debug.c index 327aa28f6030..8e7e57ccbe9a 100644 --- a/drivers/net/wireless/ath/ath9k/debug.c +++ b/drivers/net/wireless/ath/ath9k/debug.c | |||
@@ -708,24 +708,29 @@ static ssize_t read_file_stations(struct file *file, char __user *user_buf, | |||
708 | 708 | ||
709 | len += snprintf(buf + len, size - len, | 709 | len += snprintf(buf + len, size - len, |
710 | "Stations:\n" | 710 | "Stations:\n" |
711 | " tid: addr sched paused buf_q-empty an ac\n" | 711 | " tid: addr sched paused buf_q-empty an ac baw\n" |
712 | " ac: addr sched tid_q-empty txq\n"); | 712 | " ac: addr sched tid_q-empty txq\n"); |
713 | 713 | ||
714 | spin_lock(&sc->nodes_lock); | 714 | spin_lock(&sc->nodes_lock); |
715 | list_for_each_entry(an, &sc->nodes, list) { | 715 | list_for_each_entry(an, &sc->nodes, list) { |
716 | unsigned short ma = an->maxampdu; | ||
717 | if (ma == 0) | ||
718 | ma = 65535; /* see ath_lookup_rate */ | ||
716 | len += snprintf(buf + len, size - len, | 719 | len += snprintf(buf + len, size - len, |
717 | "%pM\n", an->sta->addr); | 720 | "iface: %pM sta: %pM max-ampdu: %hu mpdu-density: %uus\n", |
721 | an->vif->addr, an->sta->addr, ma, | ||
722 | (unsigned int)(an->mpdudensity)); | ||
718 | if (len >= size) | 723 | if (len >= size) |
719 | goto done; | 724 | goto done; |
720 | 725 | ||
721 | for (q = 0; q < WME_NUM_TID; q++) { | 726 | for (q = 0; q < WME_NUM_TID; q++) { |
722 | struct ath_atx_tid *tid = &(an->tid[q]); | 727 | struct ath_atx_tid *tid = &(an->tid[q]); |
723 | len += snprintf(buf + len, size - len, | 728 | len += snprintf(buf + len, size - len, |
724 | " tid: %p %s %s %i %p %p\n", | 729 | " tid: %p %s %s %i %p %p %hu\n", |
725 | tid, tid->sched ? "sched" : "idle", | 730 | tid, tid->sched ? "sched" : "idle", |
726 | tid->paused ? "paused" : "running", | 731 | tid->paused ? "paused" : "running", |
727 | skb_queue_empty(&tid->buf_q), | 732 | skb_queue_empty(&tid->buf_q), |
728 | tid->an, tid->ac); | 733 | tid->an, tid->ac, tid->baw_size); |
729 | if (len >= size) | 734 | if (len >= size) |
730 | goto done; | 735 | goto done; |
731 | } | 736 | } |
diff --git a/drivers/net/wireless/ath/ath9k/main.c b/drivers/net/wireless/ath/ath9k/main.c index e1e006d81f73..e43c41cff25b 100644 --- a/drivers/net/wireless/ath/ath9k/main.c +++ b/drivers/net/wireless/ath/ath9k/main.c | |||
@@ -630,7 +630,8 @@ set_timer: | |||
630 | } | 630 | } |
631 | } | 631 | } |
632 | 632 | ||
633 | static void ath_node_attach(struct ath_softc *sc, struct ieee80211_sta *sta) | 633 | static void ath_node_attach(struct ath_softc *sc, struct ieee80211_sta *sta, |
634 | struct ieee80211_vif *vif) | ||
634 | { | 635 | { |
635 | struct ath_node *an; | 636 | struct ath_node *an; |
636 | an = (struct ath_node *)sta->drv_priv; | 637 | an = (struct ath_node *)sta->drv_priv; |
@@ -640,6 +641,7 @@ static void ath_node_attach(struct ath_softc *sc, struct ieee80211_sta *sta) | |||
640 | list_add(&an->list, &sc->nodes); | 641 | list_add(&an->list, &sc->nodes); |
641 | spin_unlock(&sc->nodes_lock); | 642 | spin_unlock(&sc->nodes_lock); |
642 | an->sta = sta; | 643 | an->sta = sta; |
644 | an->vif = vif; | ||
643 | #endif | 645 | #endif |
644 | if (sc->sc_flags & SC_OP_TXAGGR) { | 646 | if (sc->sc_flags & SC_OP_TXAGGR) { |
645 | ath_tx_node_init(sc, an); | 647 | ath_tx_node_init(sc, an); |
@@ -1800,7 +1802,7 @@ static int ath9k_sta_add(struct ieee80211_hw *hw, | |||
1800 | struct ath_node *an = (struct ath_node *) sta->drv_priv; | 1802 | struct ath_node *an = (struct ath_node *) sta->drv_priv; |
1801 | struct ieee80211_key_conf ps_key = { }; | 1803 | struct ieee80211_key_conf ps_key = { }; |
1802 | 1804 | ||
1803 | ath_node_attach(sc, sta); | 1805 | ath_node_attach(sc, sta, vif); |
1804 | 1806 | ||
1805 | if (vif->type != NL80211_IFTYPE_AP && | 1807 | if (vif->type != NL80211_IFTYPE_AP && |
1806 | vif->type != NL80211_IFTYPE_AP_VLAN) | 1808 | vif->type != NL80211_IFTYPE_AP_VLAN) |