From da5dfbb4a5ee21d942b78eec8b597df7b910e343 Mon Sep 17 00:00:00 2001 From: Sebastien Rabaud Date: Thu, 7 Nov 2024 17:47:15 +0100 Subject: [PATCH 1/3] Fix a disconnection 0x23 issue encoutered with new Intel meteor lake chip --- .../bluetooth/controller/ll_sw/ull_llcp_remote.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/subsys/bluetooth/controller/ll_sw/ull_llcp_remote.c b/subsys/bluetooth/controller/ll_sw/ull_llcp_remote.c index 185cad7911d1b..1a7ffbae4c2e2 100644 --- a/subsys/bluetooth/controller/ll_sw/ull_llcp_remote.c +++ b/subsys/bluetooth/controller/ll_sw/ull_llcp_remote.c @@ -681,8 +681,19 @@ static void rr_st_idle(struct ll_conn *conn, uint8_t evt, void *param) if (ctx_local->proc == ctx->proc || (ctx_local->proc == PROC_CONN_UPDATE && ctx->proc == PROC_CONN_PARAM_REQ)) { - conn->llcp_terminate.reason_final = - BT_HCI_ERR_LL_PROC_COLLISION; + /* Central collision + * => Send reject + * + * Local central shall reject the PDU received from the + * peripheral by issuing a reject, continues unaffected. + */ + + /* Send reject */ + struct node_rx_pdu *rx = (struct node_rx_pdu *)param; + struct pdu_data *pdu = (struct pdu_data *)rx->pdu; + + conn->llcp.remote.reject_opcode = pdu->llctrl.opcode; + rr_act_reject(conn); } else { conn->llcp_terminate.reason_final = BT_HCI_ERR_DIFF_TRANS_COLLISION; From 39d862facb07513b7aeabea8fac4219fc9716477 Mon Sep 17 00:00:00 2001 From: Sebastien Rabaud Date: Thu, 7 Nov 2024 19:18:46 +0100 Subject: [PATCH 2/3] bluetooth: controller: ll_sw: fix comment Fixed comments from CI check and commit format. Signed-off-by: SebastienRabaudPaCotte --- subsys/bluetooth/controller/ll_sw/ull_llcp_remote.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/subsys/bluetooth/controller/ll_sw/ull_llcp_remote.c b/subsys/bluetooth/controller/ll_sw/ull_llcp_remote.c index 1a7ffbae4c2e2..7fec45ea0fca6 100644 --- a/subsys/bluetooth/controller/ll_sw/ull_llcp_remote.c +++ b/subsys/bluetooth/controller/ll_sw/ull_llcp_remote.c @@ -682,11 +682,11 @@ static void rr_st_idle(struct ll_conn *conn, uint8_t evt, void *param) (ctx_local->proc == PROC_CONN_UPDATE && ctx->proc == PROC_CONN_PARAM_REQ)) { /* Central collision - * => Send reject - * - * Local central shall reject the PDU received from the - * peripheral by issuing a reject, continues unaffected. - */ + * => Send reject + * + * Local central shall reject the PDU received from the + * peripheral by issuing a reject, continues unaffected. + */ /* Send reject */ struct node_rx_pdu *rx = (struct node_rx_pdu *)param; From 72b7dd488b39ad9f96a27619133db608dd610a22 Mon Sep 17 00:00:00 2001 From: Sebastien Rabaud Date: Fri, 8 Nov 2024 17:01:19 +0100 Subject: [PATCH 3/3] bluetooth: controller: ll_sw: fix trailling space Fixed a trailling space from CI check. Signed-off-by: SebastienRabaudPaCotte --- subsys/bluetooth/controller/ll_sw/ull_llcp_remote.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/subsys/bluetooth/controller/ll_sw/ull_llcp_remote.c b/subsys/bluetooth/controller/ll_sw/ull_llcp_remote.c index 7fec45ea0fca6..46d0ac26323b1 100644 --- a/subsys/bluetooth/controller/ll_sw/ull_llcp_remote.c +++ b/subsys/bluetooth/controller/ll_sw/ull_llcp_remote.c @@ -684,7 +684,7 @@ static void rr_st_idle(struct ll_conn *conn, uint8_t evt, void *param) /* Central collision * => Send reject * - * Local central shall reject the PDU received from the + * Local central shall reject the PDU received from the * peripheral by issuing a reject, continues unaffected. */