rtw89: BT connect state differs between scoreboard and bt_info on RTL8851B

From: Maxim Skokov

Date: Tue Sep 15 2026 - 09:22:26 EST


On RTL8851B with an A2DP sink connected and playing, btc_info shows
bt->link_info.status.map.connect flipping between Y and N, while the
scoreboard value stays the same:

reason connect action BT0->WL
NTFY_RADIO_STATE N WL_OFF 0x40000013
UPDATE_BT_INFO Y FREERUN 0x40000013
UPDATE_BT_INFO Y FREERUN 0x40000013
NTFY_RADIO_STATE N WL_OFF 0x40000013

BTC_BSCB_BT_CONNECT, BIT(16), is never set in BT0->WL, while the bt_info
mailbox reports the device as connected:

[bt_info] : raw_data[49 00 d0 00 04 00]
raw_info[2] = 0x49: connect=1, acl_busy=1, a2dp=1
raw_info[6] = 0x04: a2dp_active=1

The field is written from both paths, _update_bt_info() and the
scoreboard read in _update_bt_scbd(), so it ends up holding whichever
event arrived last.

Is the scoreboard connect bit expected to be set by BT firmware here, or
is the mailbox the authoritative source and the scoreboard write
intentional?

WL_FW 0.29.41.3, BT_FW 0xf8ad230(patch), Coex 9.24.1, kernel 7.3.0-rc1.