Commit ca7bdd95 authored by Taehee Yoo's avatar Taehee Yoo Committed by Kalle Valo

rtlwifi: rtl8192cu: Fix performance issue.

After physical reconnect, the rtl8192cu chipset shows low
transmission rates.It cause is that variable "iqk_initialized"
do not de-initialized. So I add this code.
Signed-off-by: default avatarTaehee Yoo <ap420073@gmail.com>
Acked-by: default avatarLarry Finger <Larry.Finger@lwfinger.net>
Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
parent ec264a43
...@@ -987,7 +987,6 @@ int rtl92cu_hw_init(struct ieee80211_hw *hw) ...@@ -987,7 +987,6 @@ int rtl92cu_hw_init(struct ieee80211_hw *hw)
struct rtl_phy *rtlphy = &(rtlpriv->phy); struct rtl_phy *rtlphy = &(rtlpriv->phy);
struct rtl_ps_ctl *ppsc = rtl_psc(rtl_priv(hw)); struct rtl_ps_ctl *ppsc = rtl_psc(rtl_priv(hw));
int err = 0; int err = 0;
static bool iqk_initialized;
unsigned long flags; unsigned long flags;
/* As this function can take a very long time (up to 350 ms) /* As this function can take a very long time (up to 350 ms)
...@@ -1038,11 +1037,11 @@ int rtl92cu_hw_init(struct ieee80211_hw *hw) ...@@ -1038,11 +1037,11 @@ int rtl92cu_hw_init(struct ieee80211_hw *hw)
rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_ETHER_ADDR, mac->mac_addr); rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_ETHER_ADDR, mac->mac_addr);
if (ppsc->rfpwr_state == ERFON) { if (ppsc->rfpwr_state == ERFON) {
rtl92c_phy_set_rfpath_switch(hw, 1); rtl92c_phy_set_rfpath_switch(hw, 1);
if (iqk_initialized) { if (rtlphy->iqk_initialized) {
rtl92c_phy_iq_calibrate(hw, true); rtl92c_phy_iq_calibrate(hw, true);
} else { } else {
rtl92c_phy_iq_calibrate(hw, false); rtl92c_phy_iq_calibrate(hw, false);
iqk_initialized = true; rtlphy->iqk_initialized = true;
} }
rtl92c_dm_check_txpower_tracking(hw); rtl92c_dm_check_txpower_tracking(hw);
rtl92c_phy_lc_calibrate(hw); rtl92c_phy_lc_calibrate(hw);
...@@ -1391,6 +1390,9 @@ void rtl92cu_card_disable(struct ieee80211_hw *hw) ...@@ -1391,6 +1390,9 @@ void rtl92cu_card_disable(struct ieee80211_hw *hw)
_CardDisableHWSM(hw); _CardDisableHWSM(hw);
else else
_CardDisableWithoutHWSM(hw); _CardDisableWithoutHWSM(hw);
/* after power off we should do iqk again */
rtlpriv->phy.iqk_initialized = false;
} }
void rtl92cu_set_check_bssid(struct ieee80211_hw *hw, bool check_bssid) void rtl92cu_set_check_bssid(struct ieee80211_hw *hw, bool check_bssid)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment