Commit abfe5f17 authored by Vinayak Kariappa Chettimada's avatar Vinayak Kariappa Chettimada Committed by Fabio Baltieri
Browse files

Bluetooth: Controller: 1 ms connection

1 ms connection interval support.

Signed-off-by: default avatarVinayak Kariappa Chettimada <vich@nordicsemi.no>
parent e7799d49
Loading
Loading
Loading
Loading
+13 −0
Changes for subsys/bluetooth/controller/Kconfig.ll_sw_split: 13 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -1090,6 +1090,19 @@ config BT_CTLR_ALLOW_SAME_PEER_CONN
	  WARNING: This option enables behavior that violates the Bluetooth
	  specification.

config BT_CTLR_CONN_INTERVAL_LOW_LATENCY
	bool "Allow low latency connection intervals"
	help
	  Allow low latency connection intervals.

config BT_CTLR_EVENT_IFS_LOW_LAT_US
	prompt "Low latency tIFS value in microseconds" if BT_CTLR_CONN_INTERVAL_LOW_LATENCY
	int
	default 52 if BT_CTLR_CONN_INTERVAL_LOW_LATENCY
	default 150
	help
	  Set low latency tIFS value.

endif # BT_CONN

config BT_CTLR_ADV_INDICATION
+1 −0
Changes for subsys/bluetooth/controller/ll_sw/lll.h: 1 added line, 0 removed lines.
Original line number Diff line number Diff line
@@ -21,6 +21,7 @@
#define CONN_INT_UNIT_US         1250U
#define ISO_INT_UNIT_US          CONN_INT_UNIT_US
#define PERIODIC_INT_UNIT_US     CONN_INT_UNIT_US
#define CONN_LOW_LAT_INT_UNIT_US 500U

#define ISO_INTERVAL_TO_US(interval) ((interval) * ISO_INT_UNIT_US)

+4 −1
Changes for subsys/bluetooth/controller/ll_sw/lll_conn.h: 4 added lines, 1 removed line.
Original line number Diff line number Diff line
@@ -175,7 +175,10 @@ int lll_conn_reset(void);
void lll_conn_flush(uint16_t handle, struct lll_conn *lll);

void lll_conn_prepare_reset(void);
int lll_conn_is_abort_cb(void *next, void *curr, lll_prepare_cb_t *resume_cb);
int lll_conn_central_is_abort_cb(void *next, void *curr,
				 lll_prepare_cb_t *resume_cb);
int lll_conn_peripheral_is_abort_cb(void *next, void *curr,
				    lll_prepare_cb_t *resume_cb);
void lll_conn_abort_cb(struct lll_prepare_param *prepare_param, void *param);
void lll_conn_isr_rx(void *param);
void lll_conn_isr_tx(void *param);
+6 −1
Changes for subsys/bluetooth/controller/ll_sw/nordic/lll/lll.c: 6 added lines, 1 removed line.
Original line number Diff line number Diff line
@@ -1311,10 +1311,15 @@ preempt_find_preemptor:

	/* Check if current event want to continue */
	err = event.curr.is_abort_cb(ready->prepare_param.param, event.curr.param, &resume_cb);
	if (!err) {
	if (!err || (err == -EBUSY)) {
		/* Returns -EBUSY when same curr and next state/role, do not
		 * abort same curr and next event.
		 */
		if (err != -EBUSY) {
			/* Let preemptor LLL know about the cancelled prepare */
			ready->is_aborted = 1;
			ready->abort_cb(&ready->prepare_param, ready->prepare_param.param);
		}

		return;
	}
+2 −2
Changes for subsys/bluetooth/controller/ll_sw/nordic/lll/lll_central.c: 2 added lines, 2 removed lines.
Original line number Diff line number Diff line
@@ -75,8 +75,8 @@ void lll_central_prepare(void *param)
	LL_ASSERT(err >= 0);

	/* Invoke common pipeline handling of prepare */
	err = lll_prepare(lll_is_abort_cb, lll_conn_abort_cb, prepare_cb, 0,
			  param);
	err = lll_prepare(lll_conn_central_is_abort_cb, lll_conn_abort_cb,
			  prepare_cb, 0, param);
	LL_ASSERT(!err || err == -EINPROGRESS);
}

Loading