Message ID | 20190311161057.10757-2-kai.heng.feng@canonical.com |
---|---|
State | New |
Headers | show |
Series | Make rtl8723be work again | expand |
On 3/11/19 5:10 PM, Kai-Heng Feng wrote: > BugLink: https://bugs.launchpad.net/bugs/1788997 > > This reverts commit c4748a936d6c0498c382abf479e78f4aa65312be. > > Signed-off-by: Kai-Heng Feng <kai.heng.feng@canonical.com> Acked-by: Kleber Sacilotto de Souza <kleber.souza@canonical.com> > --- > .../realtek/rtlwifi/btcoexist/halbtcoutsrc.c | 15 +++++++++++++++ > .../net/wireless/realtek/rtlwifi/rtl8723be/hw.c | 11 ++++------- > drivers/net/wireless/realtek/rtlwifi/wifi.h | 5 ----- > 3 files changed, 19 insertions(+), 12 deletions(-) > > diff --git a/drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtcoutsrc.c b/drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtcoutsrc.c > index a9e1239ff21b..b5e9877d935c 100644 > --- a/drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtcoutsrc.c > +++ b/drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtcoutsrc.c > @@ -173,6 +173,16 @@ static u8 halbtc_get_wifi_central_chnl(struct btc_coexist *btcoexist) > > u8 rtl_get_hwpg_single_ant_path(struct rtl_priv *rtlpriv) > { > + struct rtl_mod_params *mod_params = rtlpriv->cfg->mod_params; > + > + /* override ant_num / ant_path */ > + if (mod_params->ant_sel) { > + rtlpriv->btcoexist.btc_info.ant_num = > + (mod_params->ant_sel == 1 ? ANT_X2 : ANT_X1); > + > + rtlpriv->btcoexist.btc_info.single_ant_path = > + (mod_params->ant_sel == 1 ? 0 : 1); > + } > return rtlpriv->btcoexist.btc_info.single_ant_path; > } > > @@ -183,6 +193,7 @@ u8 rtl_get_hwpg_bt_type(struct rtl_priv *rtlpriv) > > u8 rtl_get_hwpg_ant_num(struct rtl_priv *rtlpriv) > { > + struct rtl_mod_params *mod_params = rtlpriv->cfg->mod_params; > u8 num; > > if (rtlpriv->btcoexist.btc_info.ant_num == ANT_X2) > @@ -190,6 +201,10 @@ u8 rtl_get_hwpg_ant_num(struct rtl_priv *rtlpriv) > else > num = 1; > > + /* override ant_num / ant_path */ > + if (mod_params->ant_sel) > + num = (mod_params->ant_sel == 1 ? ANT_X2 : ANT_X1) + 1; > + > return num; > } > > diff --git a/drivers/net/wireless/realtek/rtlwifi/rtl8723be/hw.c b/drivers/net/wireless/realtek/rtlwifi/rtl8723be/hw.c > index 67a490c0a98c..7df0a02f9b34 100644 > --- a/drivers/net/wireless/realtek/rtlwifi/rtl8723be/hw.c > +++ b/drivers/net/wireless/realtek/rtlwifi/rtl8723be/hw.c > @@ -847,9 +847,6 @@ static bool _rtl8723be_init_mac(struct ieee80211_hw *hw) > return false; > } > > - if (rtlpriv->cfg->ops->get_btc_status()) > - rtlpriv->btcoexist.btc_ops->btc_power_on_setting(rtlpriv); > - > bytetmp = rtl_read_byte(rtlpriv, REG_MULTI_FUNC_CTRL); > rtl_write_byte(rtlpriv, REG_MULTI_FUNC_CTRL, bytetmp | BIT(3)); > > @@ -2699,21 +2696,21 @@ void rtl8723be_read_bt_coexist_info_from_hwpg(struct ieee80211_hw *hw, > rtlpriv->btcoexist.btc_info.bt_type = BT_RTL8723B; > rtlpriv->btcoexist.btc_info.ant_num = (value & 0x1); > rtlpriv->btcoexist.btc_info.single_ant_path = > - (value & 0x40 ? ANT_AUX : ANT_MAIN); /*0xc3[6]*/ > + (value & 0x40); /*0xc3[6]*/ > } else { > rtlpriv->btcoexist.btc_info.btcoexist = 0; > rtlpriv->btcoexist.btc_info.bt_type = BT_RTL8723B; > rtlpriv->btcoexist.btc_info.ant_num = ANT_X2; > - rtlpriv->btcoexist.btc_info.single_ant_path = ANT_MAIN; > + rtlpriv->btcoexist.btc_info.single_ant_path = 0; > } > > /* override ant_num / ant_path */ > if (mod_params->ant_sel) { > rtlpriv->btcoexist.btc_info.ant_num = > - (mod_params->ant_sel == 1 ? ANT_X1 : ANT_X2); > + (mod_params->ant_sel == 1 ? ANT_X2 : ANT_X1); > > rtlpriv->btcoexist.btc_info.single_ant_path = > - (mod_params->ant_sel == 1 ? ANT_AUX : ANT_MAIN); > + (mod_params->ant_sel == 1 ? 0 : 1); > } > } > > diff --git a/drivers/net/wireless/realtek/rtlwifi/wifi.h b/drivers/net/wireless/realtek/rtlwifi/wifi.h > index c7a07b95341e..e005bed150cc 100644 > --- a/drivers/net/wireless/realtek/rtlwifi/wifi.h > +++ b/drivers/net/wireless/realtek/rtlwifi/wifi.h > @@ -2714,11 +2714,6 @@ enum bt_ant_num { > ANT_X1 = 1, > }; > > -enum bt_ant_path { > - ANT_MAIN = 0, > - ANT_AUX = 1, > -}; > - > enum bt_co_type { > BT_2WIRE = 0, > BT_ISSC_3WIRE = 1,
On 11.03.19 17:10, Kai-Heng Feng wrote: > BugLink: https://bugs.launchpad.net/bugs/1788997 > > This reverts commit c4748a936d6c0498c382abf479e78f4aa65312be. > > Signed-off-by: Kai-Heng Feng <kai.heng.feng@canonical.com> Acked-by: Stefan Bader <stefan.bader@canonical.com> > --- For the time being ok, but need some plan for future. > .../realtek/rtlwifi/btcoexist/halbtcoutsrc.c | 15 +++++++++++++++ > .../net/wireless/realtek/rtlwifi/rtl8723be/hw.c | 11 ++++------- > drivers/net/wireless/realtek/rtlwifi/wifi.h | 5 ----- > 3 files changed, 19 insertions(+), 12 deletions(-) > > diff --git a/drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtcoutsrc.c b/drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtcoutsrc.c > index a9e1239ff21b..b5e9877d935c 100644 > --- a/drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtcoutsrc.c > +++ b/drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtcoutsrc.c > @@ -173,6 +173,16 @@ static u8 halbtc_get_wifi_central_chnl(struct btc_coexist *btcoexist) > > u8 rtl_get_hwpg_single_ant_path(struct rtl_priv *rtlpriv) > { > + struct rtl_mod_params *mod_params = rtlpriv->cfg->mod_params; > + > + /* override ant_num / ant_path */ > + if (mod_params->ant_sel) { > + rtlpriv->btcoexist.btc_info.ant_num = > + (mod_params->ant_sel == 1 ? ANT_X2 : ANT_X1); > + > + rtlpriv->btcoexist.btc_info.single_ant_path = > + (mod_params->ant_sel == 1 ? 0 : 1); > + } > return rtlpriv->btcoexist.btc_info.single_ant_path; > } > > @@ -183,6 +193,7 @@ u8 rtl_get_hwpg_bt_type(struct rtl_priv *rtlpriv) > > u8 rtl_get_hwpg_ant_num(struct rtl_priv *rtlpriv) > { > + struct rtl_mod_params *mod_params = rtlpriv->cfg->mod_params; > u8 num; > > if (rtlpriv->btcoexist.btc_info.ant_num == ANT_X2) > @@ -190,6 +201,10 @@ u8 rtl_get_hwpg_ant_num(struct rtl_priv *rtlpriv) > else > num = 1; > > + /* override ant_num / ant_path */ > + if (mod_params->ant_sel) > + num = (mod_params->ant_sel == 1 ? ANT_X2 : ANT_X1) + 1; > + > return num; > } > > diff --git a/drivers/net/wireless/realtek/rtlwifi/rtl8723be/hw.c b/drivers/net/wireless/realtek/rtlwifi/rtl8723be/hw.c > index 67a490c0a98c..7df0a02f9b34 100644 > --- a/drivers/net/wireless/realtek/rtlwifi/rtl8723be/hw.c > +++ b/drivers/net/wireless/realtek/rtlwifi/rtl8723be/hw.c > @@ -847,9 +847,6 @@ static bool _rtl8723be_init_mac(struct ieee80211_hw *hw) > return false; > } > > - if (rtlpriv->cfg->ops->get_btc_status()) > - rtlpriv->btcoexist.btc_ops->btc_power_on_setting(rtlpriv); > - > bytetmp = rtl_read_byte(rtlpriv, REG_MULTI_FUNC_CTRL); > rtl_write_byte(rtlpriv, REG_MULTI_FUNC_CTRL, bytetmp | BIT(3)); > > @@ -2699,21 +2696,21 @@ void rtl8723be_read_bt_coexist_info_from_hwpg(struct ieee80211_hw *hw, > rtlpriv->btcoexist.btc_info.bt_type = BT_RTL8723B; > rtlpriv->btcoexist.btc_info.ant_num = (value & 0x1); > rtlpriv->btcoexist.btc_info.single_ant_path = > - (value & 0x40 ? ANT_AUX : ANT_MAIN); /*0xc3[6]*/ > + (value & 0x40); /*0xc3[6]*/ > } else { > rtlpriv->btcoexist.btc_info.btcoexist = 0; > rtlpriv->btcoexist.btc_info.bt_type = BT_RTL8723B; > rtlpriv->btcoexist.btc_info.ant_num = ANT_X2; > - rtlpriv->btcoexist.btc_info.single_ant_path = ANT_MAIN; > + rtlpriv->btcoexist.btc_info.single_ant_path = 0; > } > > /* override ant_num / ant_path */ > if (mod_params->ant_sel) { > rtlpriv->btcoexist.btc_info.ant_num = > - (mod_params->ant_sel == 1 ? ANT_X1 : ANT_X2); > + (mod_params->ant_sel == 1 ? ANT_X2 : ANT_X1); > > rtlpriv->btcoexist.btc_info.single_ant_path = > - (mod_params->ant_sel == 1 ? ANT_AUX : ANT_MAIN); > + (mod_params->ant_sel == 1 ? 0 : 1); > } > } > > diff --git a/drivers/net/wireless/realtek/rtlwifi/wifi.h b/drivers/net/wireless/realtek/rtlwifi/wifi.h > index c7a07b95341e..e005bed150cc 100644 > --- a/drivers/net/wireless/realtek/rtlwifi/wifi.h > +++ b/drivers/net/wireless/realtek/rtlwifi/wifi.h > @@ -2714,11 +2714,6 @@ enum bt_ant_num { > ANT_X1 = 1, > }; > > -enum bt_ant_path { > - ANT_MAIN = 0, > - ANT_AUX = 1, > -}; > - > enum bt_co_type { > BT_2WIRE = 0, > BT_ISSC_3WIRE = 1, >
diff --git a/drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtcoutsrc.c b/drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtcoutsrc.c index a9e1239ff21b..b5e9877d935c 100644 --- a/drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtcoutsrc.c +++ b/drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtcoutsrc.c @@ -173,6 +173,16 @@ static u8 halbtc_get_wifi_central_chnl(struct btc_coexist *btcoexist) u8 rtl_get_hwpg_single_ant_path(struct rtl_priv *rtlpriv) { + struct rtl_mod_params *mod_params = rtlpriv->cfg->mod_params; + + /* override ant_num / ant_path */ + if (mod_params->ant_sel) { + rtlpriv->btcoexist.btc_info.ant_num = + (mod_params->ant_sel == 1 ? ANT_X2 : ANT_X1); + + rtlpriv->btcoexist.btc_info.single_ant_path = + (mod_params->ant_sel == 1 ? 0 : 1); + } return rtlpriv->btcoexist.btc_info.single_ant_path; } @@ -183,6 +193,7 @@ u8 rtl_get_hwpg_bt_type(struct rtl_priv *rtlpriv) u8 rtl_get_hwpg_ant_num(struct rtl_priv *rtlpriv) { + struct rtl_mod_params *mod_params = rtlpriv->cfg->mod_params; u8 num; if (rtlpriv->btcoexist.btc_info.ant_num == ANT_X2) @@ -190,6 +201,10 @@ u8 rtl_get_hwpg_ant_num(struct rtl_priv *rtlpriv) else num = 1; + /* override ant_num / ant_path */ + if (mod_params->ant_sel) + num = (mod_params->ant_sel == 1 ? ANT_X2 : ANT_X1) + 1; + return num; } diff --git a/drivers/net/wireless/realtek/rtlwifi/rtl8723be/hw.c b/drivers/net/wireless/realtek/rtlwifi/rtl8723be/hw.c index 67a490c0a98c..7df0a02f9b34 100644 --- a/drivers/net/wireless/realtek/rtlwifi/rtl8723be/hw.c +++ b/drivers/net/wireless/realtek/rtlwifi/rtl8723be/hw.c @@ -847,9 +847,6 @@ static bool _rtl8723be_init_mac(struct ieee80211_hw *hw) return false; } - if (rtlpriv->cfg->ops->get_btc_status()) - rtlpriv->btcoexist.btc_ops->btc_power_on_setting(rtlpriv); - bytetmp = rtl_read_byte(rtlpriv, REG_MULTI_FUNC_CTRL); rtl_write_byte(rtlpriv, REG_MULTI_FUNC_CTRL, bytetmp | BIT(3)); @@ -2699,21 +2696,21 @@ void rtl8723be_read_bt_coexist_info_from_hwpg(struct ieee80211_hw *hw, rtlpriv->btcoexist.btc_info.bt_type = BT_RTL8723B; rtlpriv->btcoexist.btc_info.ant_num = (value & 0x1); rtlpriv->btcoexist.btc_info.single_ant_path = - (value & 0x40 ? ANT_AUX : ANT_MAIN); /*0xc3[6]*/ + (value & 0x40); /*0xc3[6]*/ } else { rtlpriv->btcoexist.btc_info.btcoexist = 0; rtlpriv->btcoexist.btc_info.bt_type = BT_RTL8723B; rtlpriv->btcoexist.btc_info.ant_num = ANT_X2; - rtlpriv->btcoexist.btc_info.single_ant_path = ANT_MAIN; + rtlpriv->btcoexist.btc_info.single_ant_path = 0; } /* override ant_num / ant_path */ if (mod_params->ant_sel) { rtlpriv->btcoexist.btc_info.ant_num = - (mod_params->ant_sel == 1 ? ANT_X1 : ANT_X2); + (mod_params->ant_sel == 1 ? ANT_X2 : ANT_X1); rtlpriv->btcoexist.btc_info.single_ant_path = - (mod_params->ant_sel == 1 ? ANT_AUX : ANT_MAIN); + (mod_params->ant_sel == 1 ? 0 : 1); } } diff --git a/drivers/net/wireless/realtek/rtlwifi/wifi.h b/drivers/net/wireless/realtek/rtlwifi/wifi.h index c7a07b95341e..e005bed150cc 100644 --- a/drivers/net/wireless/realtek/rtlwifi/wifi.h +++ b/drivers/net/wireless/realtek/rtlwifi/wifi.h @@ -2714,11 +2714,6 @@ enum bt_ant_num { ANT_X1 = 1, }; -enum bt_ant_path { - ANT_MAIN = 0, - ANT_AUX = 1, -}; - enum bt_co_type { BT_2WIRE = 0, BT_ISSC_3WIRE = 1,
BugLink: https://bugs.launchpad.net/bugs/1788997 This reverts commit c4748a936d6c0498c382abf479e78f4aa65312be. Signed-off-by: Kai-Heng Feng <kai.heng.feng@canonical.com> --- .../realtek/rtlwifi/btcoexist/halbtcoutsrc.c | 15 +++++++++++++++ .../net/wireless/realtek/rtlwifi/rtl8723be/hw.c | 11 ++++------- drivers/net/wireless/realtek/rtlwifi/wifi.h | 5 ----- 3 files changed, 19 insertions(+), 12 deletions(-)