rtlwifi: fix scan channel 1 fail after IPS
authorPing-Ke Shih <pkshih@realtek.com>
Wed, 17 Jan 2018 06:15:22 +0000 (14:15 +0800)
committerKalle Valo <kvalo@codeaurora.org>
Wed, 17 Jan 2018 15:09:10 +0000 (17:09 +0200)
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>
drivers/net/wireless/realtek/rtlwifi/ps.c

index 6a40088..71af24e 100644 (file)
@@ -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);