mirror of
https://github.com/torvalds/linux.git
synced 2026-06-02 19:43:40 +02:00
wifi: rtw89: coex: Add LPS protocol radio state for RTL8852B
This LPS state will not turn off RF, and it can still do some basic traffic, only RTL8852B has the state. Coexistence need let Bluetooth know WiFi is still alive to prevent some Bluetooth performance issue. Signed-off-by: Ching-Te Ku <ku920601@realtek.com> Signed-off-by: Ping-Ke Shih <pkshih@realtek.com> Signed-off-by: Kalle Valo <kvalo@kernel.org> Link: https://lore.kernel.org/r/20230314020617.28193-2-pkshih@realtek.com
This commit is contained in:
parent
21898a40b2
commit
70a13e5f00
|
|
@ -5728,6 +5728,11 @@ void rtw89_btc_ntfy_radio_state(struct rtw89_dev *rtwdev, enum btc_rfctrl rf_sta
|
|||
wl->status.map.lps = BTC_LPS_RF_OFF;
|
||||
wl->status.map.busy = 0;
|
||||
break;
|
||||
case BTC_RFCTRL_LPS_WL_ON: /* LPS-Protocol (RFon) */
|
||||
wl->status.map.rf_off = 0;
|
||||
wl->status.map.lps = BTC_LPS_RF_ON;
|
||||
wl->status.map.busy = 0;
|
||||
break;
|
||||
case BTC_RFCTRL_WL_ON:
|
||||
default:
|
||||
wl->status.map.rf_off = 0;
|
||||
|
|
@ -5745,6 +5750,9 @@ void rtw89_btc_ntfy_radio_state(struct rtw89_dev *rtwdev, enum btc_rfctrl rf_sta
|
|||
rtw89_btc_fw_en_rpt(rtwdev, RPT_EN_ALL, false);
|
||||
if (rf_state == BTC_RFCTRL_WL_OFF)
|
||||
_write_scbd(rtwdev, BTC_WSCB_ALL, false);
|
||||
else if (rf_state == BTC_RFCTRL_LPS_WL_ON &&
|
||||
wl->status.map.lps_pre != BTC_LPS_OFF)
|
||||
_update_bt_scbd(rtwdev, true);
|
||||
}
|
||||
|
||||
btc->dm.cnt_dm[BTC_DCNT_BTCNT_HANG] = 0;
|
||||
|
|
@ -5755,7 +5763,7 @@ void rtw89_btc_ntfy_radio_state(struct rtw89_dev *rtwdev, enum btc_rfctrl rf_sta
|
|||
btc->dm.tdma_instant_excute = 0;
|
||||
|
||||
_run_coex(rtwdev, BTC_RSN_NTFY_RADIO_STATE);
|
||||
|
||||
btc->dm.tdma_instant_excute = 0;
|
||||
wl->status.map.rf_off_pre = wl->status.map.rf_off;
|
||||
wl->status.map.lps_pre = wl->status.map.lps;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -131,6 +131,7 @@ enum btc_role_state {
|
|||
enum btc_rfctrl {
|
||||
BTC_RFCTRL_WL_OFF,
|
||||
BTC_RFCTRL_WL_ON,
|
||||
BTC_RFCTRL_LPS_WL_ON,
|
||||
BTC_RFCTRL_FW_CTRL,
|
||||
BTC_RFCTRL_MAX
|
||||
};
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user