Message ID | 1508133633-23214-2-git-send-email-yintang@qti.qualcomm.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Mon, 2017-10-16 at 14:00 +0800, yintang@qti.qualcomm.com wrote: > From: Yingying Tang <yintang@qti.qualcomm.com> > > Enable TDLS peer buffer STA feature. > Set extended capability bit to enable buffer STA when driver > support it. It would help if you could (build) test your changes :-) johannes
Hi Johannes, I have built and tested it, it can work -----Original Message----- From: Johannes Berg [mailto:johannes@sipsolutions.net] Sent: Wednesday, October 18, 2017 6:36 PM To: Yingying Tang <yintang@qti.qualcomm.com>; ath10k@lists.infradead.org Cc: linux-wireless@vger.kernel.org Subject: Re: [PATCH V6 1/5] mac80211: Enable TDLS peer buffer STA feature On Mon, 2017-10-16 at 14:00 +0800, yintang@qti.qualcomm.com wrote: > From: Yingying Tang <yintang@qti.qualcomm.com> > > Enable TDLS peer buffer STA feature. > Set extended capability bit to enable buffer STA when driver support > it. It would help if you could (build) test your changes :-) johannes
On Fri, 2017-10-20 at 03:34 +0000, Yingying Tang wrote: > Hi Johannes, > > I have built and tested it, it can work No, you haven't, at least not comprehensively. Try to enable debugfs. johannes
diff --git a/include/net/mac80211.h b/include/net/mac80211.h index f8149ca..5928123 100644 --- a/include/net/mac80211.h +++ b/include/net/mac80211.h @@ -2067,6 +2067,9 @@ struct ieee80211_txq { * The stack will not do fragmentation. * The callback for @set_frag_threshold should be set as well. * + * @IEEE80211_HW_SUPPORTS_TDLS_BUFFER_STA: Hardware support buffer STA when + * TDLS is established. + * * @NUM_IEEE80211_HW_FLAGS: number of hardware flags, used for sizing arrays */ enum ieee80211_hw_flags { @@ -2109,6 +2112,7 @@ enum ieee80211_hw_flags { IEEE80211_HW_TX_FRAG_LIST, IEEE80211_HW_REPORTS_LOW_ACK, IEEE80211_HW_SUPPORTS_TX_FRAG, + IEEE80211_HW_SUPPORTS_TDLS_BUFFER_STA, /* keep last, obviously */ NUM_IEEE80211_HW_FLAGS diff --git a/net/mac80211/tdls.c b/net/mac80211/tdls.c index 91093d4..8231466 100644 --- a/net/mac80211/tdls.c +++ b/net/mac80211/tdls.c @@ -47,6 +47,8 @@ static void ieee80211_tdls_add_ext_capab(struct ieee80211_sub_if_data *sdata, NL80211_FEATURE_TDLS_CHANNEL_SWITCH; bool wider_band = ieee80211_hw_check(&local->hw, TDLS_WIDER_BW) && !ifmgd->tdls_wider_bw_prohibited; + bool buffer_sta = ieee80211_hw_check(&local->hw, + SUPPORTS_TDLS_BUFFER_STA); struct ieee80211_supported_band *sband = ieee80211_get_sband(sdata); bool vht = sband && sband->vht_cap.vht_supported; u8 *pos = skb_put(skb, 10); @@ -56,7 +58,8 @@ static void ieee80211_tdls_add_ext_capab(struct ieee80211_sub_if_data *sdata, *pos++ = 0x0; *pos++ = 0x0; *pos++ = 0x0; - *pos++ = chan_switch ? WLAN_EXT_CAPA4_TDLS_CHAN_SWITCH : 0; + *pos++ = (chan_switch ? WLAN_EXT_CAPA4_TDLS_CHAN_SWITCH : 0) | + (buffer_sta ? WLAN_EXT_CAPA4_TDLS_BUFFER_STA : 0); *pos++ = WLAN_EXT_CAPA5_TDLS_ENABLED; *pos++ = 0; *pos++ = 0;