Skip to content

Commit 49fdde8

Browse files
author
Kalle Valo
committed
Merge ath-current from git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath.git
ath.git fixes for 4.15. Major changes: wcn36xx * fix dynamic power save which has been broken since the driver was commited
2 parents 943309d + 0856655 commit 49fdde8

File tree

2 files changed

+16
-13
lines changed

2 files changed

+16
-13
lines changed

drivers/net/wireless/ath/wcn36xx/main.c

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -384,6 +384,18 @@ static int wcn36xx_config(struct ieee80211_hw *hw, u32 changed)
384384
}
385385
}
386386

387+
if (changed & IEEE80211_CONF_CHANGE_PS) {
388+
list_for_each_entry(tmp, &wcn->vif_list, list) {
389+
vif = wcn36xx_priv_to_vif(tmp);
390+
if (hw->conf.flags & IEEE80211_CONF_PS) {
391+
if (vif->bss_conf.ps) /* ps allowed ? */
392+
wcn36xx_pmc_enter_bmps_state(wcn, vif);
393+
} else {
394+
wcn36xx_pmc_exit_bmps_state(wcn, vif);
395+
}
396+
}
397+
}
398+
387399
mutex_unlock(&wcn->conf_mutex);
388400

389401
return 0;
@@ -747,17 +759,6 @@ static void wcn36xx_bss_info_changed(struct ieee80211_hw *hw,
747759
vif_priv->dtim_period = bss_conf->dtim_period;
748760
}
749761

750-
if (changed & BSS_CHANGED_PS) {
751-
wcn36xx_dbg(WCN36XX_DBG_MAC,
752-
"mac bss PS set %d\n",
753-
bss_conf->ps);
754-
if (bss_conf->ps) {
755-
wcn36xx_pmc_enter_bmps_state(wcn, vif);
756-
} else {
757-
wcn36xx_pmc_exit_bmps_state(wcn, vif);
758-
}
759-
}
760-
761762
if (changed & BSS_CHANGED_BSSID) {
762763
wcn36xx_dbg(WCN36XX_DBG_MAC, "mac bss changed_bssid %pM\n",
763764
bss_conf->bssid);

drivers/net/wireless/ath/wcn36xx/pmc.c

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,8 +45,10 @@ int wcn36xx_pmc_exit_bmps_state(struct wcn36xx *wcn,
4545
struct wcn36xx_vif *vif_priv = wcn36xx_vif_to_priv(vif);
4646

4747
if (WCN36XX_BMPS != vif_priv->pw_state) {
48-
wcn36xx_err("Not in BMPS mode, no need to exit from BMPS mode!\n");
49-
return -EINVAL;
48+
/* Unbalanced call or last BMPS enter failed */
49+
wcn36xx_dbg(WCN36XX_DBG_PMC,
50+
"Not in BMPS mode, no need to exit\n");
51+
return -EALREADY;
5052
}
5153
wcn36xx_smd_exit_bmps(wcn, vif);
5254
vif_priv->pw_state = WCN36XX_FULL_POWER;

0 commit comments

Comments
 (0)