You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mynewt.apache.org by an...@apache.org on 2022/02/08 11:13:55 UTC

[mynewt-nimble] 01/02: nimble/ll: Fix sca update handling

This is an automated email from the ASF dual-hosted git repository.

andk pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/mynewt-nimble.git

commit 3596504a10ff6b1a8c65c6e22bb6a34bbb3cb581
Author: Andrzej Kaczmarek <an...@codecoup.pl>
AuthorDate: Sat Feb 5 12:26:39 2022 +0100

    nimble/ll: Fix sca update handling
    
    We should use new sca in connsm...
---
 nimble/controller/src/ble_ll_ctrl.c | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/nimble/controller/src/ble_ll_ctrl.c b/nimble/controller/src/ble_ll_ctrl.c
index 78cf075..919f4a5 100644
--- a/nimble/controller/src/ble_ll_ctrl.c
+++ b/nimble/controller/src/ble_ll_ctrl.c
@@ -1110,7 +1110,12 @@ static uint8_t
 ble_ll_ctrl_rx_sca_req(struct ble_ll_conn_sm *connsm, uint8_t *dptr,
                        uint8_t *rsp)
 {
+    if (connsm->conn_role == BLE_LL_CONN_ROLE_SLAVE) {
+        connsm->master_sca = dptr[0];
+    }
+
     ble_ll_ctrl_sca_req_rsp_make(connsm, rsp);
+
     return BLE_LL_CTRL_CLOCK_ACCURACY_RSP;
 }
 
@@ -1128,8 +1133,14 @@ ble_ll_ctrl_rx_sca_rsp(struct ble_ll_conn_sm *connsm, uint8_t *dptr)
     if (connsm->cur_ctrl_proc != BLE_LL_CTRL_PROC_SCA_UPDATE) {
         return BLE_LL_CTRL_UNKNOWN_RSP;
     }
+
+    if (connsm->conn_role == BLE_LL_CONN_ROLE_SLAVE) {
+        connsm->master_sca = dptr[0];
+    }
+
     ble_ll_ctrl_proc_stop(connsm, BLE_LL_CTRL_PROC_SCA_UPDATE);
     ble_ll_hci_ev_sca_update(connsm, BLE_ERR_SUCCESS, dptr[0]);
+
     return BLE_ERR_MAX;
 }