mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2025-01-03 12:24:45 +08:00
rtlwifi: btcoex: 21a 2ant: monitor wifi counter to check network status
If there are a lot of low-rate packets, then the connection of wifi is unstable. If so, we should switch resource to bt to have a higher transmission quality, or wifi resource will be wasted Signed-off-by: Yan-Hsuan Chuang <yhchuang@realtek.com> Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net> Cc: Pkshih <pkshih@realtek.com> Cc: Birming Chiu <birming@realtek.com> Cc: Shaofu <shaofu@realtek.com> Cc: Steven Ting <steventing@realtek.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
This commit is contained in:
parent
4776d34907
commit
eebc58782e
@ -306,6 +306,43 @@ static void btc8821a2ant_monitor_bt_ctr(struct btc_coexist *btcoexist)
|
||||
btcoexist->btc_write_1byte(btcoexist, 0x76e, 0xc);
|
||||
}
|
||||
|
||||
static void btc8821a2ant_monitor_wifi_ctr(struct btc_coexist *btcoexist)
|
||||
{
|
||||
if (coex_sta->under_ips) {
|
||||
coex_sta->crc_ok_cck = 0;
|
||||
coex_sta->crc_ok_11g = 0;
|
||||
coex_sta->crc_ok_11n = 0;
|
||||
coex_sta->crc_ok_11n_agg = 0;
|
||||
|
||||
coex_sta->crc_err_cck = 0;
|
||||
coex_sta->crc_err_11g = 0;
|
||||
coex_sta->crc_err_11n = 0;
|
||||
coex_sta->crc_err_11n_agg = 0;
|
||||
} else {
|
||||
coex_sta->crc_ok_cck =
|
||||
btcoexist->btc_read_4byte(btcoexist, 0xf88);
|
||||
coex_sta->crc_ok_11g =
|
||||
btcoexist->btc_read_2byte(btcoexist, 0xf94);
|
||||
coex_sta->crc_ok_11n =
|
||||
btcoexist->btc_read_2byte(btcoexist, 0xf90);
|
||||
coex_sta->crc_ok_11n_agg =
|
||||
btcoexist->btc_read_2byte(btcoexist, 0xfb8);
|
||||
|
||||
coex_sta->crc_err_cck =
|
||||
btcoexist->btc_read_4byte(btcoexist, 0xf84);
|
||||
coex_sta->crc_err_11g =
|
||||
btcoexist->btc_read_2byte(btcoexist, 0xf96);
|
||||
coex_sta->crc_err_11n =
|
||||
btcoexist->btc_read_2byte(btcoexist, 0xf92);
|
||||
coex_sta->crc_err_11n_agg =
|
||||
btcoexist->btc_read_2byte(btcoexist, 0xfba);
|
||||
}
|
||||
|
||||
/* reset counter */
|
||||
btcoexist->btc_write_1byte_bitmask(btcoexist, 0xf16, 0x1, 0x1);
|
||||
btcoexist->btc_write_1byte_bitmask(btcoexist, 0xf16, 0x1, 0x0);
|
||||
}
|
||||
|
||||
static void btc8821a2ant_query_bt_info(struct btc_coexist *btcoexist)
|
||||
{
|
||||
struct rtl_priv *rtlpriv = btcoexist->adapter;
|
||||
@ -2888,4 +2925,5 @@ void ex_btc8821a2ant_periodical(struct btc_coexist *btcoexist)
|
||||
|
||||
btc8821a2ant_query_bt_info(btcoexist);
|
||||
btc8821a2ant_monitor_bt_ctr(btcoexist);
|
||||
btc8821a2ant_monitor_wifi_ctr(btcoexist);
|
||||
}
|
||||
|
@ -141,6 +141,16 @@ struct coex_sta_8821a_2ant {
|
||||
bool c2h_bt_inquiry_page;
|
||||
u8 bt_retry_cnt;
|
||||
u8 bt_info_ext;
|
||||
|
||||
u32 crc_ok_cck;
|
||||
u32 crc_ok_11g;
|
||||
u32 crc_ok_11n;
|
||||
u32 crc_ok_11n_agg;
|
||||
|
||||
u32 crc_err_cck;
|
||||
u32 crc_err_11g;
|
||||
u32 crc_err_11n;
|
||||
u32 crc_err_11n_agg;
|
||||
};
|
||||
|
||||
/*===========================================
|
||||
|
Loading…
Reference in New Issue
Block a user