|
@@ -1738,7 +1738,14 @@ static int ath10k_mac_vif_setup_ps(struct ath10k_vif *arvif)
|
|
|
enable_ps = false;
|
|
|
}
|
|
|
|
|
|
- if (enable_ps) {
|
|
|
+ if (!arvif->is_started) {
|
|
|
+ /* mac80211 can update vif powersave state while disconnected.
|
|
|
+ * Firmware doesn't behave nicely and consumes more power than
|
|
|
+ * necessary if PS is disabled on a non-started vdev. Hence
|
|
|
+ * force-enable PS for non-running vdevs.
|
|
|
+ */
|
|
|
+ psmode = WMI_STA_PS_MODE_ENABLED;
|
|
|
+ } else if (enable_ps) {
|
|
|
psmode = WMI_STA_PS_MODE_ENABLED;
|
|
|
param = WMI_STA_PS_PARAM_INACTIVITY_TIME;
|
|
|
|