aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/realtek/rtlwifi/ps.c
diff options
context:
space:
mode:
authorPing-Ke Shih <pkshih@realtek.com>2018-01-17 14:15:22 +0800
committerKalle Valo <kvalo@codeaurora.org>2018-01-17 17:09:10 +0200
commitc8abbe79cce67f201bbbe8ce797476fdc96a80f4 (patch)
tree620d0e1105b79e205f298e2cb9106ce0949838af /drivers/net/wireless/realtek/rtlwifi/ps.c
parentrtlwifi: Use mutex to replace spin_lock to protect IPS and LPS (diff)
downloadlinux-dev-c8abbe79cce67f201bbbe8ce797476fdc96a80f4.tar.xz
linux-dev-c8abbe79cce67f201bbbe8ce797476fdc96a80f4.zip
rtlwifi: fix scan channel 1 fail after IPS
If there is no connection, driver will enter IPS state. Meanwhile, it fails to scan channel 1 by the command 'iw dev wlan0 scan freq 2412', because hardware channel setting lose after IPS. Thus, restore channel setting from hw->conf.channel set by last rtl_op_config(). Signed-off-by: Tim Lee <timlee@realtek.com> Signed-off-by: Ping-Ke Shih <pkshih@realtek.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
Diffstat (limited to 'drivers/net/wireless/realtek/rtlwifi/ps.c')
-rw-r--r--drivers/net/wireless/realtek/rtlwifi/ps.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/net/wireless/realtek/rtlwifi/ps.c b/drivers/net/wireless/realtek/rtlwifi/ps.c
index 6a4008845f49..71af24e2e051 100644
--- a/drivers/net/wireless/realtek/rtlwifi/ps.c
+++ b/drivers/net/wireless/realtek/rtlwifi/ps.c
@@ -51,6 +51,11 @@ bool rtl_ps_enable_nic(struct ieee80211_hw *hw)
&rtlmac->retry_long);
RT_CLEAR_PS_LEVEL(ppsc, RT_RF_OFF_LEVL_HALT_NIC);
+ rtlpriv->cfg->ops->switch_channel(hw);
+ rtlpriv->cfg->ops->set_channel_access(hw);
+ rtlpriv->cfg->ops->set_bw_mode(hw,
+ cfg80211_get_chandef_type(&hw->conf.chandef));
+
/*<3> Enable Interrupt */
rtlpriv->cfg->ops->enable_interrupt(hw);