• Ping-Ke Shih's avatar
    wifi: rtw89: correct PS calculation for SUPPORTS_DYNAMIC_PS · 26a125f5
    Ping-Ke Shih authored
    This driver relies on IEEE80211_CONF_PS of hw->conf.flags to turn off PS or
    turn on dynamic PS controlled by driver and firmware. Though this would be
    incorrect, it did work before because the flag is always recalculated until
    the commit 28977e79 ("wifi: mac80211: skip powersave recalc if driver SUPPORTS_DYNAMIC_PS")
    is introduced by kernel 5.20 to skip to recalculate IEEE80211_CONF_PS
    of hw->conf.flags if driver sets SUPPORTS_DYNAMIC_PS.
    
    Correct this by doing recalculation while BSS_CHANGED_PS is changed and
    interface is added or removed. For now, it is allowed to enter PS only if
    single one station vif is working, and it could possible to have PS per
    vif after firmware can support it. Without this fix, driver doesn't
    enter PS anymore that causes higher power consumption.
    
    Fixes: e3ec7017 ("rtw89: add Realtek 802.11ax driver")
    Cc: stable@vger.kernel.org # 6.1+
    Signed-off-by: default avatarPing-Ke Shih <pkshih@realtek.com>
    Signed-off-by: default avatarKalle Valo <kvalo@kernel.org>
    Link: https://lore.kernel.org/r/20230527082939.11206-3-pkshih@realtek.com
    26a125f5
mac80211.c 29.5 KB