From f675e14718f462609fc3ee35976d4b3023e07849 Mon Sep 17 00:00:00 2001 From: Joakim Andersson Date: Fri, 27 Dec 2019 15:58:02 +0100 Subject: [PATCH] Bluetooth: controller: Use 24-bit functions for LL Features Use 24-bit functions for LL Features copying to make byteorder more readable. Signed-off-by: Joakim Andersson --- subsys/bluetooth/controller/hci/hci.c | 4 +--- subsys/bluetooth/controller/ll_sw/ctrl.c | 24 +++++--------------- subsys/bluetooth/controller/ll_sw/ull_conn.c | 24 +++++--------------- 3 files changed, 13 insertions(+), 39 deletions(-) diff --git a/subsys/bluetooth/controller/hci/hci.c b/subsys/bluetooth/controller/hci/hci.c index d75fbd3150d..8eb9c5a3b43 100644 --- a/subsys/bluetooth/controller/hci/hci.c +++ b/subsys/bluetooth/controller/hci/hci.c @@ -787,9 +787,7 @@ static void le_read_local_features(struct net_buf *buf, struct net_buf **evt) rp->status = 0x00; (void)memset(&rp->features[0], 0x00, sizeof(rp->features)); - rp->features[0] = LL_FEAT & 0xFF; - rp->features[1] = (LL_FEAT >> 8) & 0xFF; - rp->features[2] = (LL_FEAT >> 16) & 0xFF; + sys_put_le24(LL_FEAT, rp->features); } static void le_set_random_address(struct net_buf *buf, struct net_buf **evt) diff --git a/subsys/bluetooth/controller/ll_sw/ctrl.c b/subsys/bluetooth/controller/ll_sw/ctrl.c index 316218c3ad2..fa17290e8bf 100644 --- a/subsys/bluetooth/controller/ll_sw/ctrl.c +++ b/subsys/bluetooth/controller/ll_sw/ctrl.c @@ -7915,12 +7915,8 @@ static inline void event_fex_prep(struct connection *conn) pdu_ctrl_rx->llctrl.opcode = PDU_DATA_LLCTRL_TYPE_FEATURE_RSP; (void)memset(&pdu_ctrl_rx->llctrl.feature_rsp.features[0], 0x00, sizeof(pdu_ctrl_rx->llctrl.feature_rsp.features)); - pdu_ctrl_rx->llctrl.feature_req.features[0] = - conn->llcp_feature.features & 0xFF; - pdu_ctrl_rx->llctrl.feature_req.features[1] = - (conn->llcp_feature.features >> 8) & 0xFF; - pdu_ctrl_rx->llctrl.feature_req.features[2] = - (conn->llcp_feature.features >> 16) & 0xFF; + sys_put_le24(conn->llcp_feature.features, + pdu_ctrl_rx->llctrl.feature_req.features); /* enqueue feature rsp structure into rx queue */ packet_rx_enqueue(); @@ -7950,12 +7946,8 @@ static inline void event_fex_prep(struct connection *conn) (void)memset(&pdu_ctrl_tx->llctrl.feature_req.features[0], 0x00, sizeof(pdu_ctrl_tx->llctrl.feature_req.features)); - pdu_ctrl_tx->llctrl.feature_req.features[0] = - conn->llcp_feature.features & 0xFF; - pdu_ctrl_tx->llctrl.feature_req.features[1] = - (conn->llcp_feature.features >> 8) & 0xFF; - pdu_ctrl_tx->llctrl.feature_req.features[2] = - (conn->llcp_feature.features >> 16) & 0xFF; + sys_put_le24(conn->llcp_feature.features, + pdu_ctrl_tx->llctrl.feature_req.features); ctrl_tx_enqueue(conn, node_tx); @@ -10851,12 +10843,8 @@ static u8_t feature_rsp_send(struct connection *conn, pdu_ctrl_tx->llctrl.opcode = PDU_DATA_LLCTRL_TYPE_FEATURE_RSP; (void)memset(&pdu_ctrl_tx->llctrl.feature_rsp.features[0], 0x00, sizeof(pdu_ctrl_tx->llctrl.feature_rsp.features)); - pdu_ctrl_tx->llctrl.feature_req.features[0] = - conn->llcp_feature.features & 0xFF; - pdu_ctrl_tx->llctrl.feature_req.features[1] = - (conn->llcp_feature.features >> 8) & 0xFF; - pdu_ctrl_tx->llctrl.feature_req.features[2] = - (conn->llcp_feature.features >> 16) & 0xFF; + sys_put_le24(conn->llcp_feature.features, + pdu_ctrl_tx->llctrl.feature_req.features); ctrl_tx_sec_enqueue(conn, node_tx); diff --git a/subsys/bluetooth/controller/ll_sw/ull_conn.c b/subsys/bluetooth/controller/ll_sw/ull_conn.c index 2a84d27ed7c..2f6d9e37daf 100644 --- a/subsys/bluetooth/controller/ll_sw/ull_conn.c +++ b/subsys/bluetooth/controller/ll_sw/ull_conn.c @@ -2695,12 +2695,8 @@ static inline void event_fex_prep(struct ll_conn *conn) pdu->llctrl.opcode = PDU_DATA_LLCTRL_TYPE_FEATURE_RSP; (void)memset(&pdu->llctrl.feature_rsp.features[0], 0x00, sizeof(pdu->llctrl.feature_rsp.features)); - pdu->llctrl.feature_req.features[0] = - conn->llcp_feature.features & 0xFF; - pdu->llctrl.feature_req.features[1] = - (conn->llcp_feature.features >> 8) & 0xFF; - pdu->llctrl.feature_req.features[2] = - (conn->llcp_feature.features >> 16) & 0xFF; + sys_put_le24(conn->llcp_feature.features, + pdu->llctrl.feature_req.features); /* enqueue feature rsp structure into rx queue */ ll_rx_put(rx->hdr.link, rx); @@ -2729,12 +2725,8 @@ static inline void event_fex_prep(struct ll_conn *conn) (void)memset(&pdu->llctrl.feature_req.features[0], 0x00, sizeof(pdu->llctrl.feature_req.features)); - pdu->llctrl.feature_req.features[0] = - conn->llcp_feature.features & 0xFF; - pdu->llctrl.feature_req.features[1] = - (conn->llcp_feature.features >> 8) & 0xFF; - pdu->llctrl.feature_req.features[2] = - (conn->llcp_feature.features >> 16) & 0xFF; + sys_put_le24(conn->llcp_feature.features, + pdu->llctrl.feature_req.features); ctrl_tx_enqueue(conn, tx); @@ -3987,12 +3979,8 @@ static int feature_rsp_send(struct ll_conn *conn, struct node_rx_pdu *rx, pdu_tx->llctrl.opcode = PDU_DATA_LLCTRL_TYPE_FEATURE_RSP; (void)memset(&pdu_tx->llctrl.feature_rsp.features[0], 0x00, sizeof(pdu_tx->llctrl.feature_rsp.features)); - pdu_tx->llctrl.feature_req.features[0] = - conn->llcp_feature.features & 0xFF; - pdu_tx->llctrl.feature_req.features[1] = - (conn->llcp_feature.features >> 8) & 0xFF; - pdu_tx->llctrl.feature_req.features[2] = - (conn->llcp_feature.features >> 16) & 0xFF; + sys_put_le24(conn->llcp_feature.features, + pdu_tx->llctrl.feature_req.features); ctrl_tx_sec_enqueue(conn, tx);