File tree Expand file tree Collapse file tree 2 files changed +16
-13
lines changed
drivers/net/wireless/ath/wcn36xx Expand file tree Collapse file tree 2 files changed +16
-13
lines changed Original file line number Diff line number Diff line change @@ -384,6 +384,18 @@ static int wcn36xx_config(struct ieee80211_hw *hw, u32 changed)
384
384
}
385
385
}
386
386
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
+
387
399
mutex_unlock (& wcn -> conf_mutex );
388
400
389
401
return 0 ;
@@ -747,17 +759,6 @@ static void wcn36xx_bss_info_changed(struct ieee80211_hw *hw,
747
759
vif_priv -> dtim_period = bss_conf -> dtim_period ;
748
760
}
749
761
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
-
761
762
if (changed & BSS_CHANGED_BSSID ) {
762
763
wcn36xx_dbg (WCN36XX_DBG_MAC , "mac bss changed_bssid %pM\n" ,
763
764
bss_conf -> bssid );
Original file line number Diff line number Diff line change @@ -45,8 +45,10 @@ int wcn36xx_pmc_exit_bmps_state(struct wcn36xx *wcn,
45
45
struct wcn36xx_vif * vif_priv = wcn36xx_vif_to_priv (vif );
46
46
47
47
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 ;
50
52
}
51
53
wcn36xx_smd_exit_bmps (wcn , vif );
52
54
vif_priv -> pw_state = WCN36XX_FULL_POWER ;
You can’t perform that action at this time.
0 commit comments