Bluetooth: Controller: llcp: Make remote CTE REQ to compile with CTE RSP

Part of the CTE request procdure that is related with handling of
remote request should be compiled when CTE RSP is enabled.
Withouth it CTE response will not work. Local CTE request does not
need code reponsible for handling of remote reques.

The commit changes conditional compilation guards.

Signed-off-by: Piotr Pryga <piotr.pryga@nordicsemi.no>
This commit is contained in:
Piotr Pryga 2022-01-08 11:01:24 +01:00 committed by Christopher Friedt
commit 6587336a5b
5 changed files with 22 additions and 13 deletions

View file

@ -391,7 +391,7 @@ struct proc_ctx *llcp_create_remote_procedure(enum llcp_proc proc)
llcp_rp_comm_init_proc(ctx); llcp_rp_comm_init_proc(ctx);
break; break;
#endif /* CONFIG_BT_CTLR_DATA_LENGTH */ #endif /* CONFIG_BT_CTLR_DATA_LENGTH */
#if defined(CONFIG_BT_CTLR_DF_CONN_CTE_REQ) #if defined(CONFIG_BT_CTLR_DF_CONN_CTE_RSP)
case PROC_CTE_REQ: case PROC_CTE_REQ:
llcp_rp_comm_init_proc(ctx); llcp_rp_comm_init_proc(ctx);
break; break;

View file

@ -692,11 +692,11 @@ static void rp_comm_rx_decode(struct ll_conn *conn, struct proc_ctx *ctx, struct
llcp_tx_pause_data(conn); llcp_tx_pause_data(conn);
break; break;
#endif /* CONFIG_BT_CTLR_DATA_LENGTH */ #endif /* CONFIG_BT_CTLR_DATA_LENGTH */
#if defined(CONFIG_BT_CTLR_DF_CONN_CTE_REQ) #if defined(CONFIG_BT_CTLR_DF_CONN_CTE_RSP)
case PDU_DATA_LLCTRL_TYPE_CTE_REQ: case PDU_DATA_LLCTRL_TYPE_CTE_REQ:
llcp_pdu_decode_cte_req(conn, pdu); llcp_pdu_decode_cte_req(conn, pdu);
break; break;
#endif /* CONFIG_BT_CTLR_DF_CONN_CTE_REQ */ #endif /* CONFIG_BT_CTLR_DF_CONN_CTE_RSP */
default: default:
/* Unknown opcode */ /* Unknown opcode */
LL_ASSERT(0); LL_ASSERT(0);
@ -737,13 +737,14 @@ static void rp_comm_tx(struct ll_conn *conn, struct proc_ctx *ctx)
ctx->rx_opcode = PDU_DATA_LLCTRL_TYPE_LENGTH_RSP; ctx->rx_opcode = PDU_DATA_LLCTRL_TYPE_LENGTH_RSP;
break; break;
#endif /* CONFIG_BT_CTLR_DATA_LENGTH */ #endif /* CONFIG_BT_CTLR_DATA_LENGTH */
#if defined(CONFIG_BT_CTLR_DF_CONN_CTE_REQ) #if defined(CONFIG_BT_CTLR_DF_CONN_CTE_RSP)
case PROC_CTE_REQ: { case PROC_CTE_REQ: {
uint8_t err_code = 0; uint8_t err_code = 0;
if (conn->llcp.cte_rsp.is_enabled == 0) { if (conn->llcp.cte_rsp.is_enabled == 0) {
err_code = BT_HCI_ERR_UNSUPP_LL_PARAM_VAL; err_code = BT_HCI_ERR_UNSUPP_LL_PARAM_VAL;
} }
#if defined(CONFIG_BT_PHY_UPDATE) #if defined(CONFIG_BT_PHY_UPDATE)
/* If the PHY update is not possible, then PHY1M is used. /* If the PHY update is not possible, then PHY1M is used.
* CTE is supported for PHY1M. * CTE is supported for PHY1M.
@ -766,7 +767,7 @@ static void rp_comm_tx(struct ll_conn *conn, struct proc_ctx *ctx)
} }
break; break;
} }
#endif /* CONFIG_BT_CTLR_DF_CONN_CTE_REQ */ #endif /* CONFIG_BT_CTLR_DF_CONN_CTE_RSP */
default: default:
/* Unknown procedure */ /* Unknown procedure */
LL_ASSERT(0); LL_ASSERT(0);
@ -920,7 +921,7 @@ static void rp_comm_send_rsp(struct ll_conn *conn, struct proc_ctx *ctx, uint8_t
} }
break; break;
#endif /* CONFIG_BT_CTLR_DATA_LENGTH */ #endif /* CONFIG_BT_CTLR_DATA_LENGTH */
#if defined(CONFIG_BT_CTLR_DF_CONN_CTE_REQ) #if defined(CONFIG_BT_CTLR_DF_CONN_CTE_RSP)
case PROC_CTE_REQ: case PROC_CTE_REQ:
if (ctx->pause || !llcp_tx_alloc_peek(conn, ctx)) { if (ctx->pause || !llcp_tx_alloc_peek(conn, ctx)) {
ctx->state = RP_COMMON_STATE_WAIT_TX; ctx->state = RP_COMMON_STATE_WAIT_TX;
@ -930,7 +931,7 @@ static void rp_comm_send_rsp(struct ll_conn *conn, struct proc_ctx *ctx, uint8_t
ctx->state = RP_COMMON_STATE_IDLE; ctx->state = RP_COMMON_STATE_IDLE;
} }
break; break;
#endif /* CONFIG_BT_CTLR_DF_CONN_CTE_REQ */ #endif /* CONFIG_BT_CTLR_DF_CONN_CTE_RSP */
default: default:
/* Unknown procedure */ /* Unknown procedure */
LL_ASSERT(0); LL_ASSERT(0);

View file

@ -583,9 +583,15 @@ void llcp_ntf_encode_length_change(struct ll_conn *conn,
*/ */
void llcp_pdu_encode_cte_req(struct proc_ctx *ctx, struct pdu_data *pdu); void llcp_pdu_encode_cte_req(struct proc_ctx *ctx, struct pdu_data *pdu);
void llcp_ntf_encode_cte_req(struct ll_conn *conn, struct pdu_data *pdu); void llcp_ntf_encode_cte_req(struct ll_conn *conn, struct pdu_data *pdu);
#endif /* CONFIG_BT_CTLR_DF_CONN_CTE_REQ */
#if defined(CONFIG_BT_CTLR_DF_CONN_CTE_RSP)
/*
* Constant Tone Response Procedure Helper
*/
void llcp_pdu_decode_cte_req(struct ll_conn *conn, struct pdu_data *pdu); void llcp_pdu_decode_cte_req(struct ll_conn *conn, struct pdu_data *pdu);
void llcp_pdu_encode_cte_rsp(struct ll_conn *conn, struct pdu_data *pdu); void llcp_pdu_encode_cte_rsp(struct ll_conn *conn, struct pdu_data *pdu);
#endif /* CONFIG_BT_CTLR_DF_CONN_CTE_REQ */ #endif /* CONFIG_BT_CTLR_DF_CONN_CTE_RSP */
#ifdef ZTEST_UNITTEST #ifdef ZTEST_UNITTEST
bool lr_is_disconnected(struct ll_conn *conn); bool lr_is_disconnected(struct ll_conn *conn);

View file

@ -736,7 +736,9 @@ void llcp_ntf_encode_cte_req(struct ll_conn *conn, struct pdu_data *pdu)
/* TODO add handling of IQ samples forwarding */ /* TODO add handling of IQ samples forwarding */
} }
#endif /* CONFIG_BT_CTLR_DF_CONN_CTE_REQ */
#if defined(CONFIG_BT_CTLR_DF_CONN_CTE_RSP)
void llcp_pdu_decode_cte_req(struct ll_conn *conn, struct pdu_data *pdu) void llcp_pdu_decode_cte_req(struct ll_conn *conn, struct pdu_data *pdu)
{ {
conn->llcp.cte_req.min_cte_len = pdu->llctrl.cte_req.min_cte_len_req; conn->llcp.cte_req.min_cte_len = pdu->llctrl.cte_req.min_cte_len_req;
@ -757,4 +759,4 @@ void llcp_pdu_encode_cte_rsp(struct ll_conn *conn, struct pdu_data *pdu)
pdu->cte_info.time = conn->llcp.cte_req.min_cte_len; pdu->cte_info.time = conn->llcp.cte_req.min_cte_len;
pdu->cte_info.type = conn->llcp.cte_req.cte_type; pdu->cte_info.type = conn->llcp.cte_req.cte_type;
} }
#endif /* CONFIG_BT_CTLR_DF_CONN_CTE_REQ */ #endif /* CONFIG_BT_CTLR_DF_CONN_CTE_RSP */

View file

@ -240,11 +240,11 @@ void llcp_rr_rx(struct ll_conn *conn, struct proc_ctx *ctx, struct node_rx_pdu *
llcp_rp_comm_rx(conn, ctx, rx); llcp_rp_comm_rx(conn, ctx, rx);
break; break;
#endif /* CONFIG_BT_CTLR_DATA_LENGTH */ #endif /* CONFIG_BT_CTLR_DATA_LENGTH */
#if defined(CONFIG_BT_CTLR_DF_CONN_CTE_REQ) #if defined(CONFIG_BT_CTLR_DF_CONN_CTE_RSP)
case PROC_CTE_REQ: case PROC_CTE_REQ:
llcp_rp_comm_rx(conn, ctx, rx); llcp_rp_comm_rx(conn, ctx, rx);
break; break;
#endif /* CONFIG_BT_CTLR_DF_CONN_CTE_REQ */ #endif /* CONFIG_BT_CTLR_DF_CONN_CTE_RSP */
default: default:
/* Unknown procedure */ /* Unknown procedure */
LL_ASSERT(0); LL_ASSERT(0);
@ -325,11 +325,11 @@ static void rr_act_run(struct ll_conn *conn)
llcp_rp_comm_run(conn, ctx, NULL); llcp_rp_comm_run(conn, ctx, NULL);
break; break;
#endif /* CONFIG_BT_CTLR_DATA_LENGTH */ #endif /* CONFIG_BT_CTLR_DATA_LENGTH */
#if defined(CONFIG_BT_CTLR_DF_CONN_CTE_REQ) #if defined(CONFIG_BT_CTLR_DF_CONN_CTE_RSP)
case PROC_CTE_REQ: case PROC_CTE_REQ:
llcp_rp_comm_run(conn, ctx, NULL); llcp_rp_comm_run(conn, ctx, NULL);
break; break;
#endif /* CONFIG_BT_CTLR_DF_CONN_CTE_REQ */ #endif /* CONFIG_BT_CTLR_DF_CONN_CTE_RSP */
default: default:
/* Unknown procedure */ /* Unknown procedure */
LL_ASSERT(0); LL_ASSERT(0);