forked from Minki/linux
rtlwifi: Correct power save capability while init mac80211
Since the driver itself will enter power saving mode dynamically according to the traffic, we set hw capability SUPPORTS_PS and SUPPORTS_DYNAMIC_PS in case of fwctrl_lps. The process IEEE80211_CONF_CHANGE_PS in op_config is used by SW-LPS only, so we add constraints to avoid errors. Signed-off-by: Ping-Ke Shih <pkshih@realtek.com> Signed-off-by: vincent_fann <vincent_fann@realtek.com> Signed-off-by: shaofu <shaofu@realtek.com> Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net> Signed-off-by: Yan-Hsuan Chuang <yhchuang@realtek.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
This commit is contained in:
parent
f95d95a7cd
commit
e332e2a294
@ -405,6 +405,10 @@ static void _rtl_init_mac80211(struct ieee80211_hw *hw)
|
||||
ieee80211_hw_set(hw, SUPPORTS_PS);
|
||||
ieee80211_hw_set(hw, PS_NULLFUNC_STACK);
|
||||
}
|
||||
if (rtlpriv->psc.fwctrl_lps) {
|
||||
ieee80211_hw_set(hw, SUPPORTS_PS);
|
||||
ieee80211_hw_set(hw, SUPPORTS_DYNAMIC_PS);
|
||||
}
|
||||
hw->wiphy->interface_modes =
|
||||
BIT(NL80211_IFTYPE_AP) |
|
||||
BIT(NL80211_IFTYPE_STATION) |
|
||||
|
@ -629,7 +629,8 @@ static int rtl_op_config(struct ieee80211_hw *hw, u32 changed)
|
||||
}
|
||||
|
||||
/*For LPS */
|
||||
if (changed & IEEE80211_CONF_CHANGE_PS) {
|
||||
if ((changed & IEEE80211_CONF_CHANGE_PS) &&
|
||||
rtlpriv->psc.swctrl_lps && !rtlpriv->psc.fwctrl_lps) {
|
||||
cancel_delayed_work(&rtlpriv->works.ps_work);
|
||||
cancel_delayed_work(&rtlpriv->works.ps_rfon_wq);
|
||||
if (conf->flags & IEEE80211_CONF_PS) {
|
||||
|
Loading…
Reference in New Issue
Block a user