| From 055dbde26b5703bf8d46b2713ebaa18ce7c0be07 Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Fri, 17 Jul 2020 14:49:34 +0800 |
| Subject: rtw88: coex: only skip coex triggered by BT info |
| |
| From: Yan-Hsuan Chuang <yhchuang@realtek.com> |
| |
| [ Upstream commit 3f194bd4ca1cd9b8eef34d37d562279dbeb80319 ] |
| |
| The coex mechanism used to skip upon the freeze flag is raised. |
| That will cause the coex mechanism being skipped unexpectedly. |
| Coex only wanted to keep the TDMA table from being changed by |
| BT side. |
| |
| So, check the freeze and reason, if the coex reason is coming |
| from BT info, skip it, to make sure the coex triggered by Wifi |
| itself can work. |
| |
| This is required for the AP mode, while the control flow is |
| different with STA mode. When starting an AP mode, the AP mode |
| needs to start working immedaitely after leaving IPS, and the |
| freeze flag could be raised. If the coex info is skipped, then |
| the AP mode will not set the antenna owner, leads to TX stuck. |
| |
| Fixes: 4136214f7c46 ("rtw88: add BT co-existence support") |
| Signed-off-by: Yan-Hsuan Chuang <yhchuang@realtek.com> |
| Signed-off-by: Kalle Valo <kvalo@codeaurora.org> |
| Link: https://lore.kernel.org/r/20200717064937.27966-5-yhchuang@realtek.com |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| drivers/net/wireless/realtek/rtw88/coex.c | 3 ++- |
| 1 file changed, 2 insertions(+), 1 deletion(-) |
| |
| diff --git a/drivers/net/wireless/realtek/rtw88/coex.c b/drivers/net/wireless/realtek/rtw88/coex.c |
| index 567372fb4e12e..c73101afbeddb 100644 |
| --- a/drivers/net/wireless/realtek/rtw88/coex.c |
| +++ b/drivers/net/wireless/realtek/rtw88/coex.c |
| @@ -1920,7 +1920,8 @@ static void rtw_coex_run_coex(struct rtw_dev *rtwdev, u8 reason) |
| if (coex_stat->wl_under_ips) |
| return; |
| |
| - if (coex->freeze && !coex_stat->bt_setup_link) |
| + if (coex->freeze && coex_dm->reason == COEX_RSN_BTINFO && |
| + !coex_stat->bt_setup_link) |
| return; |
| |
| coex_stat->cnt_wl[COEX_CNT_WL_COEXRUN]++; |
| -- |
| 2.25.1 |
| |