Bluetooth: Controller: Fix Periodic Sync Failed to be Established
Fix Periodic Advertising Synchronize implementation to generate Synchronization Failed to be Established event when 6 AUX_SYNC_IND PDUs are not received when establishing synchronization. Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
This commit is contained in:
parent
f9ac97336d
commit
e07af1fa08
8 changed files with 148 additions and 25 deletions
|
@ -6036,18 +6036,20 @@ static void le_per_adv_sync_established(struct pdu_data *pdu_data,
|
|||
|
||||
se = (void *)pdu_data;
|
||||
sep->status = se->status;
|
||||
sep->handle = sys_cpu_to_le16(node_rx->hdr.handle);
|
||||
|
||||
if (sep->status != BT_HCI_ERR_SUCCESS && sep->status != BT_HCI_ERR_UNSUPP_REMOTE_FEATURE) {
|
||||
if (se->status == BT_HCI_ERR_OP_CANCELLED_BY_HOST) {
|
||||
return;
|
||||
}
|
||||
|
||||
sep->handle = sys_cpu_to_le16(node_rx->hdr.handle);
|
||||
|
||||
scan = node_rx->hdr.rx_ftr.param;
|
||||
|
||||
sep->sid = scan->per_scan.sid;
|
||||
/* Resolved address, if private, has been populated in ULL */
|
||||
sep->adv_addr.type = scan->per_scan.adv_addr_type;
|
||||
memcpy(&sep->adv_addr.a.val[0], scan->per_scan.adv_addr, BDADDR_SIZE);
|
||||
|
||||
sep->sid = scan->per_scan.sid;
|
||||
sep->phy = find_lsb_set(se->phy);
|
||||
sep->interval = sys_cpu_to_le16(se->interval);
|
||||
sep->clock_accuracy = se->sca;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue