From 3829cc357019a254095de79f37d3ab710e95bbbe Mon Sep 17 00:00:00 2001 From: Andrzej Kaczmarek Date: Wed, 20 Dec 2017 13:42:05 +0100 Subject: [PATCH] nimble/ll: Do not initiate features xchg as a slave This patch removes initial feature xchg from controller when connected as a slave due to observed problems with recent iPhones (8 and X). X-Original-Commit: 04bf95924537757ff8516a275297ea6f2a6d4393 --- nimble/controller/src/ble_ll_conn.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/nimble/controller/src/ble_ll_conn.c b/nimble/controller/src/ble_ll_conn.c index 9d7fe1534..040c657ac 100644 --- a/nimble/controller/src/ble_ll_conn.c +++ b/nimble/controller/src/ble_ll_conn.c @@ -2511,10 +2511,17 @@ ble_ll_conn_created(struct ble_ll_conn_sm *connsm, struct ble_mbuf_hdr *rxhdr) #if (MYNEWT_VAL(BLE_LL_CFG_FEAT_LE_CSA2) == 1) ble_ll_hci_ev_le_csa(connsm); #endif - } - /* Initiate features exchange */ - ble_ll_ctrl_proc_start(connsm, BLE_LL_CTRL_PROC_FEATURE_XCHG); + /* + * Initiate features exchange + * + * XXX we do this only as a master as it was observed that sending + * LL_SLAVE_FEATURE_REQ after connection breaks some recent iPhone + * models; for slave just assume master will initiate features xchg + * if it has some additional features to use. + */ + ble_ll_ctrl_proc_start(connsm, BLE_LL_CTRL_PROC_FEATURE_XCHG); + } } return rc;