> -----Original Message----- > From: Larry Finger <larry.finger@xxxxxxxxx> On Behalf Of Larry Finger > Sent: Friday, August 4, 2023 6:14 AM > To: Ping-Ke Shih <pkshih@xxxxxxxxxxx> > Cc: linux-wireless <linux-wireless@xxxxxxxxxxxxxxx> > Subject: Regression in rtw89 > > Ping-Ke, > > A user of my GitHub repo has reported a regression beginning with commit > 26a125f550a3 ("wifi: rtw89: correct PS calculation for SUPPORTS_DYNAMIC_PS"). > The user finds interference between wifi and the BT device that is part of the > package. > > We were able to determine that loading rtw89_core with the "disable_ps_mode=y" > option does fix the problem. Our discussion of the problem can be seen at > https://github.com/lwfinger/rtw89/issues/262#issuecomment-1664658764. > As the commit message of the 26a125f550a3, PS was broken since v5.20, and that patch fixes it. The correct bisection is from initial version of 8852BE + this patch. (8852BE is introduced by kernel v6.2, and PS was broken at that time.) As the discussion in github, it looks like a BT-coexistence problem, because Both WiFi-only and BT-only work. Please update BT driver and firmware to have below: BT driver: - Bluetooth: btrtl: Firmware format v2 support - Bluetooth: btrtl: Add the support for RTL8851B BT firmware: (copy all files from linux-firmware.git:/rtl_bt/) - rtl_bt: Add firmware and config files for RTL8851B Then, read btc_info in period of 2 seconds before and after entering PS. A sample script to capture log while [ true ]; do cat /sys/kernel/debug/ieee80211/phy0/rtw89/btc_info; date; sleep 2; done And, use 'iw wlan0 set power_save on/off' to switch PS state. Also, please point out the time when BT goes wrong. > Reading the patch in question, it seems that a vif count of 1 is not sufficient > to enable PS, and that it is also necessary to make sure that BT is not active > as well. 'vif' count refers to WiFi vif that is normally one for regular use (STA mode only). When it enters/leaves PS, rtw89_btc_ntfy_radio_state() is called to notify BT-coexistence mechanism to reflect current WiFi PS state. By the way, things related to BT are existing in coex.c. Ping-Ke