Re: rtw89: BT connect state differs between scoreboard and bt_info on RTL8851B
From: Maxim Skokov
Date: Wed Sep 16 2026 - 01:32:53 EST
> We found the problem recently, and ongoing to send out the patch.
> Please try the attachment.
Applied on 7.3.0-rc1, rebuilt the rtw89 modules only. RTL8851BE,
WL_FW 0.29.41.5.
The hardware read works. With RTW89_DBG_BTC on, during a radio state
change:
[BTC], read scbd bt0: 0x40000013
[BTC], read scbd bt0: 0xc0000013
BTC_BSCB_BT_CONNECT, BIT(16), is not set in either value, so the register
holds what the C2H path was already reporting.
status.map.connect still alternates. 90 samples of btc_info, one per
second, with the mechanism reason and the WL link mode beside it:
16 connect:Y reason:UPDATE_BT_INFO link_mode:STA
1 connect:Y reason:NTFY_SWBAND link_mode:STA
70 connect:N reason:NTFY_POWEROFF link_mode:STA
2 connect:N reason:UPDATE_BT_SCBD link_mode:STA
1 connect:N reason:NTFY_SCAN_START link_mode:STA
The same sampling on the unpatched module, 30 samples two seconds apart,
gave 28 N and 2 Y, so this part is unchanged.
The mailbox reports the device as connected throughout:
raw_data[49 01 c9 00 04 00], so raw_info[2] = 0x49 and lb2.connect = 1,
with A2DP_active:Y. The sink was connected and playing for all of the
above, and WL stayed in STA mode, retrying association without completing
it.
Is BTC_BSCB_BT_CONNECT expected to be set by BT firmware on this chip? If
not, status.map.connect will keep being overwritten from the scoreboard
after _update_bt_info() has written it from the mailbox.