btinfo
union btc_btinfo btinfo;
btinfo.val = bt->raw_info[BTC_BTINFO_L2];
b->status.map.connect = btinfo.lb2.connect;
b->status.map.sco_busy = btinfo.lb2.sco_busy;
b->status.map.acl_busy = btinfo.lb2.acl_busy;
b->status.map.inq_pag = btinfo.lb2.inq_pag;
bt->inq_pag.now = btinfo.lb2.inq_pag;
hfp->exist = btinfo.lb2.hfp;
hid->exist = btinfo.lb2.hid;
a2dp->exist = btinfo.lb2.a2dp;
pan->exist = btinfo.lb2.pan;
btc->dm.trx_info.bt_profile = u32_get_bits(btinfo.val, BT_PROFILE_PROTOCOL_MASK);
btinfo.val = bt->raw_info[BTC_BTINFO_L3];
if (btinfo.lb3.retry != 0)
b->cqddr = btinfo.lb3.cqddr;
cx->cnt_bt[BTC_BCNT_INQ] += !!(btinfo.lb3.inq && !bt->inq);
bt->inq = btinfo.lb3.inq;
cx->cnt_bt[BTC_BCNT_PAGE] += !!(btinfo.lb3.pag && !bt->pag);
bt->pag = btinfo.lb3.pag;
b->status.map.mesh_busy = btinfo.lb3.mesh_busy;
btinfo.val = bt->raw_info[BTC_BTINFO_H0];
b->rssi = chip->ops->btc_get_bt_rssi(rtwdev, btinfo.hb0.rssi);
btinfo.val = bt->raw_info[BTC_BTINFO_H1];
b->status.map.ble_connect = btinfo.hb1.ble_connect;
if (btinfo.hb1.ble_connect) {
else if (btinfo.hb1.voice)
cx->cnt_bt[BTC_BCNT_REINIT] += !!(btinfo.hb1.reinit && !bt->reinit);
bt->reinit = btinfo.hb1.reinit;
cx->cnt_bt[BTC_BCNT_RELINK] += !!(btinfo.hb1.relink && !b->relink.now);
b->relink.now = btinfo.hb1.relink;
cx->cnt_bt[BTC_BCNT_IGNOWL] += !!(btinfo.hb1.igno_wl && !bt->igno_wl);
bt->igno_wl = btinfo.hb1.igno_wl;
bt->ble_scan_en = btinfo.hb1.ble_scan;
cx->cnt_bt[BTC_BCNT_ROLESW] += !!(btinfo.hb1.role_sw && !b->role_sw);
b->role_sw = btinfo.hb1.role_sw;
b->multi_link.now = btinfo.hb1.multi_link;
btinfo.val = bt->raw_info[BTC_BTINFO_H2];
pan->active = !!btinfo.hb2.pan_active;
cx->cnt_bt[BTC_BCNT_AFH] += !!(btinfo.hb2.afh_update && !b->afh_update);
b->afh_update = btinfo.hb2.afh_update;
a2dp->active = btinfo.hb2.a2dp_active;
b->slave_role = btinfo.hb2.slave;
hid->slot_info = btinfo.hb2.hid_slot;
hid->pair_cnt = btinfo.hb2.hid_cnt;
btinfo.val = bt->raw_info[BTC_BTINFO_H3];
a2dp->bitpool = btinfo.hb3.a2dp_bitpool;
if (b->tx_3m != (u32)btinfo.hb3.tx_3m)
b->tx_3m = (u32)btinfo.hb3.tx_3m;
a2dp->sink = btinfo.hb3.a2dp_sink;
struct btinfo *info = (struct btinfo *)buf;