Message ID | ba04d61c-3f80-573f-3108-c94a9c991404@nbd.name (mailing list archive) |
---|---|
State | Not Applicable |
Delegated to: | Johannes Berg |
Headers | show |
On Fri, 2017-01-13 at 09:54 +0100, Felix Fietkau wrote: > > Additionally, ath10k appears to be setting this to > > WLAN_HT_CAP_SM_PS_DYNAMIC already, so apparently it's expecting > > something to happen with that value? Is it really correct then to > > be overwriting it? > > Actually, that code seems to leave the value at > WLAN_HT_CAP_SM_PS_DISABLED, because it sets that first and doesn't > mask out the field before trying to set it to > WLAN_HT_CAP_SM_PS_DYNAMIC. Hah, that's funny. > I don't think it even makes sense to set WLAN_HT_CAP_SM_PS_DYNAMIC at > this point, since it's up to mac80211 to deal with the SMPS state. > > Either way, WLAN_HT_CAP_SM_PS_STATIC is a really bad default to have > at init time. If you want, I can change the patch to check for that > value before changing it, but I don't really see the point. No, I think I agree. But please add a comment that OR'ing in the two bits will not result in it having strange values - it's a bit unexpected to see this here and then one has to remember (or look up) the value of DISABLED to understand the code is fine. > Additionally, I found this ath10k commit: > > > commit e33a99e227e430a788467e5a85dc29f6df16b983 > Author: Peter Oh <poh@qca.qualcomm.com> > Date: Thu Dec 31 15:26:20 2015 +0200 > > ath10k: set SM power save disabled to default value > > Use SMPS disabled as default because FW does not indicate > any support of SMPS. > > This change will help STAs out that don’t support SMPS from > sticking on 1SS, since they don’t have method to change it > back to multiple chains. > > This change also should not affect power consumption of STAs > supporting SMPS, because they are capable to switch the mode > to dynamic or static either at the end of frame sequence or > by using SMPS action frame. Fun. Though I'd argue that this whole thing should then just be removed from ath10k. johannes
diff --git a/drivers/net/wireless/ath/ath10k/mac.c b/drivers/net/wireless/ath/ath10k/mac.c index b4bdeb07a012..6146a293601a 100644 --- a/drivers/net/wireless/ath/ath10k/mac.c +++ b/drivers/net/wireless/ath/ath10k/mac.c @@ -3860,7 +3860,8 @@ static struct ieee80211_sta_ht_cap ath10k_get_ht_cap(struct ath10k *ar) ht_cap.ampdu_density = IEEE80211_HT_MPDU_DENSITY_8; ht_cap.cap |= IEEE80211_HT_CAP_SUP_WIDTH_20_40; ht_cap.cap |= IEEE80211_HT_CAP_DSSSCCK40; - ht_cap.cap |= WLAN_HT_CAP_SM_PS_STATIC << IEEE80211_HT_CAP_SM_PS_SHIFT; + ht_cap.cap |= + WLAN_HT_CAP_SM_PS_DISABLED << IEEE80211_HT_CAP_SM_PS_SHIFT; if (ar->ht_cap_info & WMI_HT_CAP_HT20_SGI) ht_cap.cap |= IEEE80211_HT_CAP_SGI_20;