aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/rtlwifi/ps.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/wireless/rtlwifi/ps.c')
-rw-r--r--drivers/net/wireless/rtlwifi/ps.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/net/wireless/rtlwifi/ps.c b/drivers/net/wireless/rtlwifi/ps.c
index a14a68b2463..130fdd99d57 100644
--- a/drivers/net/wireless/rtlwifi/ps.c
+++ b/drivers/net/wireless/rtlwifi/ps.c
@@ -237,11 +237,12 @@ void rtl_ips_nic_on(struct ieee80211_hw *hw)
237 struct rtl_mac *mac = rtl_mac(rtl_priv(hw)); 237 struct rtl_mac *mac = rtl_mac(rtl_priv(hw));
238 struct rtl_ps_ctl *ppsc = rtl_psc(rtl_priv(hw)); 238 struct rtl_ps_ctl *ppsc = rtl_psc(rtl_priv(hw));
239 enum rf_pwrstate rtstate; 239 enum rf_pwrstate rtstate;
240 unsigned long flags;
240 241
241 if (mac->opmode != NL80211_IFTYPE_STATION) 242 if (mac->opmode != NL80211_IFTYPE_STATION)
242 return; 243 return;
243 244
244 mutex_lock(&rtlpriv->locks.ps_mutex); 245 spin_lock_irqsave(&rtlpriv->locks.ips_lock, flags);
245 246
246 if (ppsc->inactiveps) { 247 if (ppsc->inactiveps) {
247 rtstate = ppsc->rfpwr_state; 248 rtstate = ppsc->rfpwr_state;
@@ -257,7 +258,7 @@ void rtl_ips_nic_on(struct ieee80211_hw *hw)
257 } 258 }
258 } 259 }
259 260
260 mutex_unlock(&rtlpriv->locks.ps_mutex); 261 spin_unlock_irqrestore(&rtlpriv->locks.ips_lock, flags);
261} 262}
262 263
263/*for FW LPS*/ 264/*for FW LPS*/