diff --git a/subsys/bluetooth/controller/ll_sw/ull_df.c b/subsys/bluetooth/controller/ll_sw/ull_df.c index 0af3d02d48b..d26e5c74622 100644 --- a/subsys/bluetooth/controller/ll_sw/ull_df.c +++ b/subsys/bluetooth/controller/ll_sw/ull_df.c @@ -1160,8 +1160,7 @@ uint8_t ll_df_set_conn_cte_req_enable(uint16_t handle, uint8_t enable, } if (!enable) { - conn->llcp.cte_req.is_enabled = false; - conn->llcp.cte_req.req_interval = 0U; + ull_cp_cte_req_set_disable(conn); if (conn->llcp.cte_req.is_active) { struct k_sem sem; diff --git a/subsys/bluetooth/controller/ll_sw/ull_llcp.c b/subsys/bluetooth/controller/ll_sw/ull_llcp.c index 2a5810a5711..923e70fd2cf 100644 --- a/subsys/bluetooth/controller/ll_sw/ull_llcp.c +++ b/subsys/bluetooth/controller/ll_sw/ull_llcp.c @@ -917,6 +917,12 @@ uint8_t ull_cp_cte_req(struct ll_conn *conn, uint8_t min_cte_len, uint8_t cte_ty return BT_HCI_ERR_SUCCESS; } + +void ull_cp_cte_req_set_disable(struct ll_conn *conn) +{ + conn->llcp.cte_req.is_enabled = 0U; + conn->llcp.cte_req.req_interval = 0U; +} #endif /* CONFIG_BT_CTLR_DF_CONN_CTE_REQ */ static bool pdu_is_expected(struct pdu_data *pdu, struct proc_ctx *ctx) diff --git a/subsys/bluetooth/controller/ll_sw/ull_llcp.h b/subsys/bluetooth/controller/ll_sw/ull_llcp.h index c7cf75ee514..2842d1b1fe4 100644 --- a/subsys/bluetooth/controller/ll_sw/ull_llcp.h +++ b/subsys/bluetooth/controller/ll_sw/ull_llcp.h @@ -153,6 +153,11 @@ uint8_t ull_cp_data_length_update(struct ll_conn *conn, uint16_t max_tx_octets, */ uint8_t ull_cp_cte_req(struct ll_conn *conn, uint8_t min_cte_len, uint8_t cte_type); +/** + * @brief Set a CTE Request Procedure disabled. + */ +void ull_cp_cte_req_set_disable(struct ll_conn *conn); + /** * @brief Enable or disable response to CTE Request Procedure. */ diff --git a/subsys/bluetooth/controller/ll_sw/ull_llcp_common.c b/subsys/bluetooth/controller/ll_sw/ull_llcp_common.c index a752927b8be..d2d19fc05e1 100644 --- a/subsys/bluetooth/controller/ll_sw/ull_llcp_common.c +++ b/subsys/bluetooth/controller/ll_sw/ull_llcp_common.c @@ -355,6 +355,7 @@ static void lp_comm_complete(struct ll_conn *conn, struct proc_ctx *ctx, uint8_t } else { conn->llcp.cte_req.is_enabled = 0U; lp_comm_ntf(conn, ctx); + ull_cp_cte_req_set_disable(conn); } } else if (ctx->response_opcode == PDU_DATA_LLCTRL_TYPE_REJECT_EXT_IND && ctx->reject_ext_ind.reject_opcode == PDU_DATA_LLCTRL_TYPE_CTE_REQ) {