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 latency;
|
||||
|
||||
/* FIXME: BEGIN: Move to ULL? */
|
||||
u16_t latency_prepare;
|
||||
u16_t latency_event;
|
||||
|
||||
u16_t event_counter;
|
||||
|
||||
u8_t data_chan_map[5];
|
||||
u8_t data_chan_count:6;
|
||||
u8_t data_chan_sel:1;
|
||||
|
@ -80,24 +79,17 @@ struct lll_conn {
|
|||
u16_t data_chan_id;
|
||||
};
|
||||
|
||||
union {
|
||||
struct {
|
||||
u8_t terminate_ack:1;
|
||||
} master;
|
||||
|
||||
struct {
|
||||
u8_t latency_enabled:1;
|
||||
u8_t latency_cancel:1;
|
||||
u8_t sca:3;
|
||||
u32_t window_widening_periodic_us;
|
||||
u32_t window_widening_max_us;
|
||||
u32_t window_widening_prepare_us;
|
||||
u32_t window_widening_event_us;
|
||||
u32_t window_size_prepare_us;
|
||||
u32_t window_size_event_us;
|
||||
} slave;
|
||||
};
|
||||
/* FIXME: END: Move to ULL? */
|
||||
#if defined(CONFIG_BT_PERIPHERAL)
|
||||
struct {
|
||||
u8_t latency_enabled:1;
|
||||
u32_t window_widening_periodic_us;
|
||||
u32_t window_widening_max_us;
|
||||
u32_t window_widening_prepare_us;
|
||||
u32_t window_widening_event_us;
|
||||
u32_t window_size_prepare_us;
|
||||
u32_t window_size_event_us;
|
||||
} slave;
|
||||
#endif /* CONFIG_BT_PERIPHERAL */
|
||||
|
||||
#if defined(CONFIG_BT_CTLR_DATA_LENGTH)
|
||||
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_event = 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_event_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->common.fex_valid = 0;
|
||||
conn->slave.latency_cancel = 0;
|
||||
|
||||
conn->llcp_req = conn->llcp_ack = conn->llcp_type = 0;
|
||||
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
|
||||
*/
|
||||
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);
|
||||
|
||||
return;
|
||||
|
@ -977,7 +977,7 @@ void ull_conn_done(struct node_rx_event_done *done)
|
|||
lll->latency_event = lll->latency;
|
||||
}
|
||||
} else if (reason_peer) {
|
||||
lll->master.terminate_ack = 1;
|
||||
conn->master.terminate_ack = 1;
|
||||
}
|
||||
|
||||
/* 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_conn_ppm_local_get() +
|
||||
lll_conn_ppm_get(lll->slave.sca)) *
|
||||
lll_conn_ppm_get(conn->slave.sca)) *
|
||||
conn_interval_us) + (1000000 - 1)) / 1000000U;
|
||||
lll->slave.window_widening_max_us =
|
||||
(conn_interval_us >> 1) - EVENT_IFS_US;
|
||||
|
|
|
@ -36,13 +36,16 @@ struct ll_conn {
|
|||
} common;
|
||||
|
||||
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 ticks_to_offset;
|
||||
} slave;
|
||||
|
||||
struct {
|
||||
u8_t fex_valid:1;
|
||||
u8_t terminate_ack:1;
|
||||
} master;
|
||||
};
|
||||
|
||||
|
|
|
@ -87,10 +87,10 @@ void ull_slave_setup(memq_link_t *link, struct node_rx_hdr *rx,
|
|||
conn_interval_us = interval * 1250U;
|
||||
|
||||
/* 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_conn_ppm_local_get() +
|
||||
lll_conn_ppm_get(lll->slave.sca)) *
|
||||
lll_conn_ppm_get(conn->slave.sca)) *
|
||||
conn_interval_us) + (1000000 - 1)) / 1000000U;
|
||||
lll->slave.window_widening_max_us = (conn_interval_us >> 1) -
|
||||
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->latency = lll->latency;
|
||||
cc->timeout = timeout;
|
||||
cc->sca = lll->slave.sca;
|
||||
cc->sca = conn->slave.sca;
|
||||
|
||||
lll->handle = ll_conn_handle_get(conn);
|
||||
rx->handle = lll->handle;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue