Bluetooth: controller: split: Refactor LLL conn structure
Refactor the LLL connection context to move out the member fields not accessed in LLL execution context. Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
This commit is contained in:
parent
e07227ffe7
commit
6d8b12468e
5 changed files with 23 additions and 28 deletions
|
@ -61,11 +61,10 @@ struct lll_conn {
|
||||||
u16_t interval;
|
u16_t interval;
|
||||||
u16_t latency;
|
u16_t latency;
|
||||||
|
|
||||||
/* FIXME: BEGIN: Move to ULL? */
|
|
||||||
u16_t latency_prepare;
|
u16_t latency_prepare;
|
||||||
u16_t latency_event;
|
u16_t latency_event;
|
||||||
|
|
||||||
u16_t event_counter;
|
u16_t event_counter;
|
||||||
|
|
||||||
u8_t data_chan_map[5];
|
u8_t data_chan_map[5];
|
||||||
u8_t data_chan_count:6;
|
u8_t data_chan_count:6;
|
||||||
u8_t data_chan_sel:1;
|
u8_t data_chan_sel:1;
|
||||||
|
@ -80,15 +79,9 @@ struct lll_conn {
|
||||||
u16_t data_chan_id;
|
u16_t data_chan_id;
|
||||||
};
|
};
|
||||||
|
|
||||||
union {
|
#if defined(CONFIG_BT_PERIPHERAL)
|
||||||
struct {
|
|
||||||
u8_t terminate_ack:1;
|
|
||||||
} master;
|
|
||||||
|
|
||||||
struct {
|
struct {
|
||||||
u8_t latency_enabled:1;
|
u8_t latency_enabled:1;
|
||||||
u8_t latency_cancel:1;
|
|
||||||
u8_t sca:3;
|
|
||||||
u32_t window_widening_periodic_us;
|
u32_t window_widening_periodic_us;
|
||||||
u32_t window_widening_max_us;
|
u32_t window_widening_max_us;
|
||||||
u32_t window_widening_prepare_us;
|
u32_t window_widening_prepare_us;
|
||||||
|
@ -96,8 +89,7 @@ struct lll_conn {
|
||||||
u32_t window_size_prepare_us;
|
u32_t window_size_prepare_us;
|
||||||
u32_t window_size_event_us;
|
u32_t window_size_event_us;
|
||||||
} slave;
|
} slave;
|
||||||
};
|
#endif /* CONFIG_BT_PERIPHERAL */
|
||||||
/* FIXME: END: Move to ULL? */
|
|
||||||
|
|
||||||
#if defined(CONFIG_BT_CTLR_DATA_LENGTH)
|
#if defined(CONFIG_BT_CTLR_DATA_LENGTH)
|
||||||
u16_t max_tx_octets;
|
u16_t max_tx_octets;
|
||||||
|
|
|
@ -605,7 +605,6 @@ u8_t ll_adv_enable(u8_t enable)
|
||||||
conn_lll->latency_prepare = 0;
|
conn_lll->latency_prepare = 0;
|
||||||
conn_lll->latency_event = 0;
|
conn_lll->latency_event = 0;
|
||||||
conn_lll->slave.latency_enabled = 0;
|
conn_lll->slave.latency_enabled = 0;
|
||||||
conn_lll->slave.latency_cancel = 0;
|
|
||||||
conn_lll->slave.window_widening_prepare_us = 0;
|
conn_lll->slave.window_widening_prepare_us = 0;
|
||||||
conn_lll->slave.window_widening_event_us = 0;
|
conn_lll->slave.window_widening_event_us = 0;
|
||||||
conn_lll->slave.window_size_prepare_us = 0;
|
conn_lll->slave.window_size_prepare_us = 0;
|
||||||
|
@ -619,6 +618,7 @@ u8_t ll_adv_enable(u8_t enable)
|
||||||
conn->procedure_expire = 0;
|
conn->procedure_expire = 0;
|
||||||
|
|
||||||
conn->common.fex_valid = 0;
|
conn->common.fex_valid = 0;
|
||||||
|
conn->slave.latency_cancel = 0;
|
||||||
|
|
||||||
conn->llcp_req = conn->llcp_ack = conn->llcp_type = 0;
|
conn->llcp_req = conn->llcp_ack = conn->llcp_type = 0;
|
||||||
conn->llcp_rx = NULL;
|
conn->llcp_rx = NULL;
|
||||||
|
|
|
@ -949,7 +949,7 @@ void ull_conn_done(struct node_rx_event_done *done)
|
||||||
* Slave received terminate ind or MIC failure
|
* Slave received terminate ind or MIC failure
|
||||||
*/
|
*/
|
||||||
reason_peer = conn->llcp_terminate.reason_peer;
|
reason_peer = conn->llcp_terminate.reason_peer;
|
||||||
if (reason_peer && (lll->role || lll->master.terminate_ack)) {
|
if (reason_peer && (lll->role || conn->master.terminate_ack)) {
|
||||||
conn_cleanup(conn, reason_peer);
|
conn_cleanup(conn, reason_peer);
|
||||||
|
|
||||||
return;
|
return;
|
||||||
|
@ -977,7 +977,7 @@ void ull_conn_done(struct node_rx_event_done *done)
|
||||||
lll->latency_event = lll->latency;
|
lll->latency_event = lll->latency;
|
||||||
}
|
}
|
||||||
} else if (reason_peer) {
|
} else if (reason_peer) {
|
||||||
lll->master.terminate_ack = 1;
|
conn->master.terminate_ack = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Reset connection failed to establish countdown */
|
/* Reset connection failed to establish countdown */
|
||||||
|
@ -2125,7 +2125,7 @@ static inline int event_conn_upd_prep(struct ll_conn *conn, u16_t lazy,
|
||||||
|
|
||||||
lll->slave.window_widening_periodic_us =
|
lll->slave.window_widening_periodic_us =
|
||||||
(((lll_conn_ppm_local_get() +
|
(((lll_conn_ppm_local_get() +
|
||||||
lll_conn_ppm_get(lll->slave.sca)) *
|
lll_conn_ppm_get(conn->slave.sca)) *
|
||||||
conn_interval_us) + (1000000 - 1)) / 1000000U;
|
conn_interval_us) + (1000000 - 1)) / 1000000U;
|
||||||
lll->slave.window_widening_max_us =
|
lll->slave.window_widening_max_us =
|
||||||
(conn_interval_us >> 1) - EVENT_IFS_US;
|
(conn_interval_us >> 1) - EVENT_IFS_US;
|
||||||
|
|
|
@ -37,12 +37,15 @@ struct ll_conn {
|
||||||
|
|
||||||
struct {
|
struct {
|
||||||
u8_t fex_valid:1;
|
u8_t fex_valid:1;
|
||||||
|
u8_t latency_cancel:1;
|
||||||
|
u8_t sca:3;
|
||||||
u32_t force;
|
u32_t force;
|
||||||
u32_t ticks_to_offset;
|
u32_t ticks_to_offset;
|
||||||
} slave;
|
} slave;
|
||||||
|
|
||||||
struct {
|
struct {
|
||||||
u8_t fex_valid:1;
|
u8_t fex_valid:1;
|
||||||
|
u8_t terminate_ack:1;
|
||||||
} master;
|
} master;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -87,10 +87,10 @@ void ull_slave_setup(memq_link_t *link, struct node_rx_hdr *rx,
|
||||||
conn_interval_us = interval * 1250U;
|
conn_interval_us = interval * 1250U;
|
||||||
|
|
||||||
/* calculate the window widening */
|
/* calculate the window widening */
|
||||||
lll->slave.sca = pdu_adv->connect_ind.sca;
|
conn->slave.sca = pdu_adv->connect_ind.sca;
|
||||||
lll->slave.window_widening_periodic_us =
|
lll->slave.window_widening_periodic_us =
|
||||||
(((lll_conn_ppm_local_get() +
|
(((lll_conn_ppm_local_get() +
|
||||||
lll_conn_ppm_get(lll->slave.sca)) *
|
lll_conn_ppm_get(conn->slave.sca)) *
|
||||||
conn_interval_us) + (1000000 - 1)) / 1000000U;
|
conn_interval_us) + (1000000 - 1)) / 1000000U;
|
||||||
lll->slave.window_widening_max_us = (conn_interval_us >> 1) -
|
lll->slave.window_widening_max_us = (conn_interval_us >> 1) -
|
||||||
EVENT_IFS_US;
|
EVENT_IFS_US;
|
||||||
|
@ -162,7 +162,7 @@ void ull_slave_setup(memq_link_t *link, struct node_rx_hdr *rx,
|
||||||
cc->interval = lll->interval;
|
cc->interval = lll->interval;
|
||||||
cc->latency = lll->latency;
|
cc->latency = lll->latency;
|
||||||
cc->timeout = timeout;
|
cc->timeout = timeout;
|
||||||
cc->sca = lll->slave.sca;
|
cc->sca = conn->slave.sca;
|
||||||
|
|
||||||
lll->handle = ll_conn_handle_get(conn);
|
lll->handle = ll_conn_handle_get(conn);
|
||||||
rx->handle = lll->handle;
|
rx->handle = lll->handle;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue