diff options
Diffstat (limited to 'drivers/net/wireless/ti/wlcore/ps.c')
| -rw-r--r-- | drivers/net/wireless/ti/wlcore/ps.c | 10 | 
1 files changed, 9 insertions, 1 deletions
diff --git a/drivers/net/wireless/ti/wlcore/ps.c b/drivers/net/wireless/ti/wlcore/ps.c index 98066d40c2a..b52516eed7b 100644 --- a/drivers/net/wireless/ti/wlcore/ps.c +++ b/drivers/net/wireless/ti/wlcore/ps.c @@ -83,6 +83,10 @@ void wl1271_ps_elp_sleep(struct wl1271 *wl)  	struct wl12xx_vif *wlvif;  	u32 timeout; +	/* We do not enter elp sleep in PLT mode */ +	if (wl->plt) +		return; +  	if (wl->sleep_auth != WL1271_PSM_ELP)  		return; @@ -276,7 +280,11 @@ void wl12xx_ps_link_start(struct wl1271 *wl, struct wl12xx_vif *wlvif,  	struct ieee80211_sta *sta;  	struct ieee80211_vif *vif = wl12xx_wlvif_to_vif(wlvif); -	if (test_bit(hlid, &wl->ap_ps_map)) +	if (WARN_ON_ONCE(wlvif->bss_type != BSS_TYPE_AP_BSS)) +		return; + +	if (!test_bit(hlid, wlvif->ap.sta_hlid_map) || +	    test_bit(hlid, &wl->ap_ps_map))  		return;  	wl1271_debug(DEBUG_PSM, "start mac80211 PSM on hlid %d pkts %d "  | 
