Skip to content

Commit da5dfbb

Browse files
Fix a disconnection 0x23 issue encoutered with new Intel meteor lake chip
1 parent 2b5ee0c commit da5dfbb

File tree

1 file changed

+13
-2
lines changed

1 file changed

+13
-2
lines changed

subsys/bluetooth/controller/ll_sw/ull_llcp_remote.c

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -681,8 +681,19 @@ static void rr_st_idle(struct ll_conn *conn, uint8_t evt, void *param)
681681
if (ctx_local->proc == ctx->proc ||
682682
(ctx_local->proc == PROC_CONN_UPDATE &&
683683
ctx->proc == PROC_CONN_PARAM_REQ)) {
684-
conn->llcp_terminate.reason_final =
685-
BT_HCI_ERR_LL_PROC_COLLISION;
684+
/* Central collision
685+
* => Send reject
686+
*
687+
* Local central shall reject the PDU received from the
688+
* peripheral by issuing a reject, continues unaffected.
689+
*/
690+
691+
/* Send reject */
692+
struct node_rx_pdu *rx = (struct node_rx_pdu *)param;
693+
struct pdu_data *pdu = (struct pdu_data *)rx->pdu;
694+
695+
conn->llcp.remote.reject_opcode = pdu->llctrl.opcode;
696+
rr_act_reject(conn);
686697
} else {
687698
conn->llcp_terminate.reason_final =
688699
BT_HCI_ERR_DIFF_TRANS_COLLISION;

0 commit comments

Comments
 (0)