Lines Matching refs:lll

198 	if ((conn == NULL) || (conn->lll.handle != handle)) {  in ll_connected_get()
252 force_md_cnt = force_md_cnt_calc(&conn->lll, tx_rate); in ll_tx_mem_enqueue()
269 if (IS_ENABLED(CONFIG_BT_PERIPHERAL) && conn->lll.role) { in ll_tx_mem_enqueue()
322 conn->lll.role) { in ll_conn_update()
366 memcpy(chm, pending_chm, sizeof(conn->lll.data_chan_map)); in ll_chm_get()
368 memcpy(chm, conn->lll.data_chan_map, sizeof(conn->lll.data_chan_map)); in ll_chm_get()
430 if (IS_ENABLED(CONFIG_BT_PERIPHERAL) && conn->lll.role) { in ll_terminate_ind_send()
445 if (cis->group && cis->lll.handle == handle && !cis->established) { in ll_terminate_ind_send()
451 conn = ll_connected_get(cis->lll.acl_handle); in ll_terminate_ind_send()
489 conn = ll_connected_get(cis->lll.acl_handle); in ll_terminate_ind_send()
521 conn->lll.role) { in ll_feature_req_send()
545 if (IS_ENABLED(CONFIG_BT_PERIPHERAL) && conn->lll.role) { in ll_version_ind_send()
596 if (IS_ENABLED(CONFIG_BT_PERIPHERAL) && conn->lll.role) { in ll_length_req_send()
649 *tx = conn->lll.phy_tx; in ll_phy_get()
650 *rx = conn->lll.phy_rx; in ll_phy_get()
685 if (IS_ENABLED(CONFIG_BT_PERIPHERAL) && conn->lll.role) { in ll_phy_req_send()
703 *rssi = conn->lll.rssi_latest; in ll_rssi_get()
725 if (conn->lll.interval >= BT_HCI_LE_INTERVAL_MIN) { in ll_apto_get()
726 *apto = conn->apto_reload * conn->lll.interval * in ll_apto_get()
729 *apto = conn->apto_reload * (conn->lll.interval + 1U) * in ll_apto_get()
751 if (conn->lll.interval >= BT_HCI_LE_INTERVAL_MIN) { in ll_apto_set()
754 conn->lll.interval * in ll_apto_set()
759 (conn->lll.interval + 1U) * in ll_apto_set()
817 return &conn->lll; in ull_conn_lll_get()
979 LL_ASSERT(conn->lll.handle != LLL_HANDLE_INVALID); in ull_conn_llcp()
1007 struct lll_conn *lll; in ull_conn_done() local
1016 lll = &conn->lll; in ull_conn_done()
1019 if (unlikely(lll->handle == LLL_HANDLE_INVALID)) { in ull_conn_done()
1034 if (lll->enc_rx && lll->enc_tx) { in ull_conn_done()
1039 (lll->latency + 6)) ? in ull_conn_done()
1041 (lll->latency + 6)) : in ull_conn_done()
1082 latency_event = conn->common.is_must_expire ? 0 : lll->latency_event; in ull_conn_done()
1084 latency_event = lll->latency_event; in ull_conn_done()
1098 } else if (lll->role == BT_HCI_ROLE_PERIPHERAL) { in ull_conn_done()
1116 memq_peek(lll->memq_tx.head, in ull_conn_done()
1117 lll->memq_tx.tail, NULL)) { in ull_conn_done()
1118 lll->latency_event = 0U; in ull_conn_done()
1119 } else if (lll->periph.latency_enabled) { in ull_conn_done()
1120 lll->latency_event = lll->latency; in ull_conn_done()
1129 if (lll->role == BT_HCI_ROLE_PERIPHERAL) { in ull_conn_done()
1135 elapsed_event = lll->lazy_prepare + 1U; in ull_conn_done()
1161 if (conn->lll.interval >= BT_HCI_LE_INTERVAL_MIN) { in ull_conn_done()
1162 conn_interval_us = conn->lll.interval * in ull_conn_done()
1165 conn_interval_us = (conn->lll.interval + 1U) * in ull_conn_done()
1183 lll->latency_event = 0U; in ull_conn_done()
1197 else if (lll->role) { in ull_conn_done()
1218 lll->forced = force_lll; in ull_conn_done()
1241 rx->handle = lll->handle; in ull_conn_done()
1295 if (lll->rssi_sample_count == 0U) { in ull_conn_done()
1301 lll->rssi_reported = lll->rssi_latest; in ull_conn_done()
1302 lll->rssi_sample_count = LLL_CONN_RSSI_SAMPLE_COUNT; in ull_conn_done()
1305 rx->hdr.handle = lll->handle; in ull_conn_done()
1310 pdu_data_rx->rssi = lll->rssi_reported; in ull_conn_done()
1320 if ((force) || (latency_event != lll->latency_event)) { in ull_conn_done()
1321 lazy = lll->latency_event + 1U; in ull_conn_done()
1326 if (lll->evt_len_upd) { in ull_conn_done()
1329 lll->evt_len_upd = 0; in ull_conn_done()
1332 ready_delay = (lll->role) ? in ull_conn_done()
1333 lll_radio_rx_ready_delay_get(lll->phy_rx, PHY_FLAGS_S8) : in ull_conn_done()
1334 lll_radio_tx_ready_delay_get(lll->phy_tx, lll->phy_flags); in ull_conn_done()
1338 tx_time = lll->dle.eff.max_tx_time; in ull_conn_done()
1339 rx_time = lll->dle.eff.max_rx_time; in ull_conn_done()
1343 PDU_DC_MAX_US(PDU_DC_PAYLOAD_SIZE_MIN, lll->phy_tx)); in ull_conn_done()
1345 PDU_DC_MAX_US(PDU_DC_PAYLOAD_SIZE_MIN, lll->phy_rx)); in ull_conn_done()
1349 tx_time = PDU_MAX_US(0U, 0U, lll->phy_tx); in ull_conn_done()
1350 rx_time = PDU_MAX_US(0U, 0U, lll->phy_rx); in ull_conn_done()
1354 ready_delay = (lll->role) ? in ull_conn_done()
1358 tx_time = PDU_DC_MAX_US(lll->dle.eff.max_tx_octets, 0); in ull_conn_done()
1359 rx_time = PDU_DC_MAX_US(lll->dle.eff.max_rx_octets, 0); in ull_conn_done()
1369 slot_us += lll->tifs_rx_us + (EVENT_CLOCK_JITTER_US << 1); in ull_conn_done()
1373 !conn->lll.role) { in ull_conn_done()
1395 uint8_t ticker_id = TICKER_ID_CONN_BASE + lll->handle; in ull_conn_done()
1396 struct ll_conn *conn_ll = lll->hdr.parent; in ull_conn_done()
1420 void ull_conn_lll_tx_demux_sched(struct lll_conn *lll) in ull_conn_lll_tx_demux_sched() argument
1425 mfy.param = HDR_LLL2ULL(lll); in ull_conn_lll_tx_demux_sched()
1485 memq_enqueue(link, tx, &conn->lll.memq_tx.tail); in ull_conn_tx_lll_enqueue()
1599 uint16_t ull_conn_lll_max_tx_octets_get(struct lll_conn *lll) in ull_conn_lll_max_tx_octets_get() argument
1605 switch (lll->phy_tx_time) { in ull_conn_lll_max_tx_octets_get()
1612 max_tx_octets = (lll->dle.eff.max_tx_time >> 3) - 10; in ull_conn_lll_max_tx_octets_get()
1620 max_tx_octets = (lll->dle.eff.max_tx_time >> 2) - 11; in ull_conn_lll_max_tx_octets_get()
1625 if (lll->phy_flags & 0x01) { in ull_conn_lll_max_tx_octets_get()
1633 max_tx_octets = ((lll->dle.eff.max_tx_time - 592) >> in ull_conn_lll_max_tx_octets_get()
1643 max_tx_octets = ((lll->dle.eff.max_tx_time - 430) >> in ull_conn_lll_max_tx_octets_get()
1651 if (lll->enc_tx) { in ull_conn_lll_max_tx_octets_get()
1657 if (max_tx_octets > lll->dle.eff.max_tx_octets) { in ull_conn_lll_max_tx_octets_get()
1658 max_tx_octets = lll->dle.eff.max_tx_octets; in ull_conn_lll_max_tx_octets_get()
1662 max_tx_octets = lll->dle.eff.max_tx_octets; in ull_conn_lll_max_tx_octets_get()
1695 conn->lll.handle = LLL_HANDLE_INVALID; in init_reset()
1819 struct lll_conn *lll; in conn_setup_adv_scan_disabled_cb() local
1826 lll = *((struct lll_conn **)((uint8_t *)ftr->param + in conn_setup_adv_scan_disabled_cb()
1837 switch (lll->role) { in conn_setup_adv_scan_disabled_cb()
1840 ull_central_setup(rx, ftr, lll); in conn_setup_adv_scan_disabled_cb()
1846 ull_periph_setup(rx, ftr, lll); in conn_setup_adv_scan_disabled_cb()
1865 conn, &conn->lll); in disable()
1868 conn->lll.link_tx_free = NULL; in disable()
1896 struct lll_conn *lll = &conn->lll; in conn_cleanup_finalize() local
1913 TICKER_ID_CONN_BASE + lll->handle, in conn_cleanup_finalize()
1920 lll->handle = LLL_HANDLE_INVALID; in conn_cleanup_finalize()
1946 rx->hdr.handle = conn->lll.handle; in conn_cleanup()
1977 memq_enqueue(link, tx, &conn->lll.memq_tx.tail); in tx_ull_flush()
2018 mfy.param = &conn->lll; in conn_disable()
2033 disabled_cb(&conn->lll); in conn_disable()
2052 struct lll_conn *lll; in tx_lll_flush() local
2059 lll = param; in tx_lll_flush()
2060 conn = HDR_LLL2ULL(lll); in tx_lll_flush()
2063 lll_conn_flush(handle, lll); in tx_lll_flush()
2065 link = memq_dequeue(lll->memq_tx.tail, &lll->memq_tx.head, in tx_lll_flush()
2083 link = memq_dequeue(lll->memq_tx.tail, &lll->memq_tx.head, in tx_lll_flush()
2108 ll_tx_ack_put(conn->lll.handle, tx); in empty_data_start_release()
2193 return conn->lll.event_counter + conn->lll.latency_prepare + conn->llcp.prep.lazy; in ull_conn_event_counter_at_prepare()
2198 struct lll_conn *lll; in ull_conn_event_counter() local
2201 lll = &conn->lll; in ull_conn_event_counter()
2215 event_counter = lll->event_counter - 1; in ull_conn_event_counter()
2217 event_counter = lll->event_counter + lll->latency_prepare + in ull_conn_event_counter()
2258 conn->lll.role == BT_HCI_ROLE_PERIPHERAL ? in ull_conn_update_ticker()
2296 struct lll_conn *lll; in ull_conn_update_parameters() local
2298 lll = &conn->lll; in ull_conn_update_parameters()
2309 ready_delay_us = lll_radio_tx_ready_delay_get(lll->phy_tx, in ull_conn_update_parameters()
2310 lll->phy_flags); in ull_conn_update_parameters()
2316 if (lll->interval >= BT_HCI_LE_INTERVAL_MIN) { in ull_conn_update_parameters()
2317 conn_interval_old = instant_latency * lll->interval; in ull_conn_update_parameters()
2320 conn_interval_old = instant_latency * (lll->interval + 1U); in ull_conn_update_parameters()
2331 lll->tifs_tx_us = EVENT_IFS_DEFAULT_US; in ull_conn_update_parameters()
2332 lll->tifs_rx_us = EVENT_IFS_DEFAULT_US; in ull_conn_update_parameters()
2333 lll->tifs_hcto_us = EVENT_IFS_DEFAULT_US; in ull_conn_update_parameters()
2337 max_tx_time = lll->dle.eff.max_tx_time; in ull_conn_update_parameters()
2338 max_rx_time = lll->dle.eff.max_rx_time; in ull_conn_update_parameters()
2346 max_tx_time = MAX(max_tx_time, PDU_DC_MAX_US(PDU_DC_PAYLOAD_SIZE_MIN, lll->phy_tx)); in ull_conn_update_parameters()
2347 max_rx_time = MAX(max_rx_time, PDU_DC_MAX_US(PDU_DC_PAYLOAD_SIZE_MIN, lll->phy_rx)); in ull_conn_update_parameters()
2355 slot_us += lll->tifs_rx_us + (EVENT_CLOCK_JITTER_US << 1); in ull_conn_update_parameters()
2359 (lll->role == BT_HCI_ROLE_CENTRAL)) { in ull_conn_update_parameters()
2368 lll->tifs_tx_us = CONFIG_BT_CTLR_EVENT_IFS_LOW_LAT_US; in ull_conn_update_parameters()
2369 lll->tifs_rx_us = CONFIG_BT_CTLR_EVENT_IFS_LOW_LAT_US; in ull_conn_update_parameters()
2370 lll->tifs_hcto_us = CONFIG_BT_CTLR_EVENT_IFS_LOW_LAT_US; in ull_conn_update_parameters()
2393 lll->latency_prepare += conn->llcp.prep.lazy; in ull_conn_update_parameters()
2394 lll->latency_prepare -= (instant_latency - latency_upd); in ull_conn_update_parameters()
2404 switch (lll->role) { in ull_conn_update_parameters()
2408 lll->periph.window_widening_prepare_us += lll->periph.window_widening_periodic_us * in ull_conn_update_parameters()
2410 if (lll->periph.window_widening_prepare_us > lll->periph.window_widening_max_us) { in ull_conn_update_parameters()
2411 lll->periph.window_widening_prepare_us = in ull_conn_update_parameters()
2412 lll->periph.window_widening_max_us; in ull_conn_update_parameters()
2415 lll->periph.window_widening_prepare_us -= in ull_conn_update_parameters()
2416 lll->periph.window_widening_periodic_us * instant_latency; in ull_conn_update_parameters()
2418 lll->periph.window_widening_periodic_us = in ull_conn_update_parameters()
2422 lll->periph.window_widening_max_us = (conn_interval_us >> 1U) - EVENT_IFS_US; in ull_conn_update_parameters()
2423 lll->periph.window_size_prepare_us = win_size * CONN_INT_UNIT_US; in ull_conn_update_parameters()
2429 lll->periph.window_widening_prepare_us += in ull_conn_update_parameters()
2430 lll->periph.window_widening_periodic_us * latency_upd; in ull_conn_update_parameters()
2431 if (lll->periph.window_widening_prepare_us > lll->periph.window_widening_max_us) { in ull_conn_update_parameters()
2432 lll->periph.window_widening_prepare_us = lll->periph.window_widening_max_us; in ull_conn_update_parameters()
2435 ticks_at_expire -= HAL_TICKER_US_TO_TICKS(lll->periph.window_widening_periodic_us * in ull_conn_update_parameters()
2439 periodic_us -= lll->periph.window_widening_periodic_us; in ull_conn_update_parameters()
2458 lll->interval = interval; in ull_conn_update_parameters()
2459 lll->latency = latency; in ull_conn_update_parameters()
2471 conn->appto_reload = (conn->apto_reload > (lll->latency + 6U)) ? in ull_conn_update_parameters()
2472 (conn->apto_reload - (lll->latency + 6U)) : in ull_conn_update_parameters()
2490 struct lll_conn *lll; in ull_conn_update_peer_sca() local
2495 lll = &conn->lll; in ull_conn_update_peer_sca()
2498 if (lll->interval >= BT_HCI_LE_INTERVAL_MIN) { in ull_conn_update_peer_sca()
2499 conn_interval_us = lll->interval * in ull_conn_update_peer_sca()
2502 conn_interval_us = (lll->interval + 1U) * in ull_conn_update_peer_sca()
2507 lll->periph.window_widening_periodic_us = in ull_conn_update_peer_sca()
2512 periodic_us -= lll->periph.window_widening_periodic_us; in ull_conn_update_peer_sca()
2523 struct lll_conn *lll = &conn->lll; in ull_conn_chan_map_set() local
2525 memcpy(lll->data_chan_map, chm, sizeof(lll->data_chan_map)); in ull_conn_chan_map_set()
2526 lll->data_chan_count = util_ones_count_get(lll->data_chan_map, sizeof(lll->data_chan_map)); in ull_conn_chan_map_set()
2550 tx_time = MIN(conn->lll.dle.default_tx_time, in dle_max_time_get()
2553 tx_time = PDU_DC_MAX_US(conn->lll.dle.default_tx_octets, phy_select); in dle_max_time_get()
2586 conn->lll.evt_len_upd = 1U; in ull_dle_update_eff()
2599 MAX(MIN(conn->lll.dle.local.max_rx_octets, conn->lll.dle.remote.max_tx_octets), in ull_dle_update_eff_rx()
2603 unsigned int min_eff_rx_time = (conn->lll.phy_rx == PHY_CODED) ? in ull_dle_update_eff_rx()
2607 MAX(MIN(conn->lll.dle.local.max_rx_time, conn->lll.dle.remote.max_tx_time), in ull_dle_update_eff_rx()
2610 if (eff_rx_time != conn->lll.dle.eff.max_rx_time) { in ull_dle_update_eff_rx()
2611 conn->lll.dle.eff.max_rx_time = eff_rx_time; in ull_dle_update_eff_rx()
2615 conn->lll.dle.eff.max_rx_time = PDU_DC_MAX_US(eff_rx_octets, PHY_1M); in ull_dle_update_eff_rx()
2618 if (eff_rx_octets != conn->lll.dle.eff.max_rx_octets) { in ull_dle_update_eff_rx()
2619 conn->lll.dle.eff.max_rx_octets = eff_rx_octets; in ull_dle_update_eff_rx()
2625 conn->lll.evt_len_upd_delayed = 1; in ull_dle_update_eff_rx()
2638 MAX(MIN(conn->lll.dle.local.max_tx_octets, conn->lll.dle.remote.max_rx_octets), in ull_dle_update_eff_tx()
2642 unsigned int min_eff_tx_time = (conn->lll.phy_tx == PHY_CODED) ? in ull_dle_update_eff_tx()
2646 MAX(MIN(conn->lll.dle.local.max_tx_time, conn->lll.dle.remote.max_rx_time), in ull_dle_update_eff_tx()
2649 if (eff_tx_time != conn->lll.dle.eff.max_tx_time) { in ull_dle_update_eff_tx()
2650 conn->lll.dle.eff.max_tx_time = eff_tx_time; in ull_dle_update_eff_tx()
2654 conn->lll.dle.eff.max_tx_time = PDU_DC_MAX_US(eff_tx_octets, PHY_1M); in ull_dle_update_eff_tx()
2657 if (eff_tx_octets != conn->lll.dle.eff.max_tx_octets) { in ull_dle_update_eff_tx()
2658 conn->lll.dle.eff.max_tx_octets = eff_tx_octets; in ull_dle_update_eff_tx()
2664 conn->lll.evt_len_upd = 1U; in ull_dle_update_eff_tx()
2666 conn->lll.evt_len_upd |= conn->lll.evt_len_upd_delayed; in ull_dle_update_eff_tx()
2667 conn->lll.evt_len_upd_delayed = 0; in ull_dle_update_eff_tx()
2698 conn->lll.dle.default_tx_octets = tx_octets; in ull_dle_local_tx_update()
2701 conn->lll.dle.default_tx_time = tx_time; in ull_dle_local_tx_update()
2704 dle_max_time_get(conn, &conn->lll.dle.local.max_rx_time, &conn->lll.dle.local.max_tx_time); in ull_dle_local_tx_update()
2705 conn->lll.dle.local.max_tx_octets = conn->lll.dle.default_tx_octets; in ull_dle_local_tx_update()
2716 memset(&conn->lll.dle, 0, sizeof(conn->lll.dle)); in ull_dle_init()
2722 conn->lll.dle.local.max_rx_octets = LL_LENGTH_OCTETS_RX_MAX; in ull_dle_init()
2724 conn->lll.dle.local.max_rx_time = max_time_max; in ull_dle_init()
2728 conn->lll.dle.remote.max_tx_octets = PDU_DC_PAYLOAD_SIZE_MIN; in ull_dle_init()
2729 conn->lll.dle.remote.max_rx_octets = PDU_DC_PAYLOAD_SIZE_MIN; in ull_dle_init()
2732 conn->lll.dle.remote.max_tx_time = max_time_min; in ull_dle_init()
2733 conn->lll.dle.remote.max_rx_time = max_time_min; in ull_dle_init()
2747 if ((conn->lll.dle.local.max_rx_time != max_time_min || in ull_dle_init()
2748 conn->lll.dle.local.max_tx_time != max_time_min)) { in ull_dle_init()
2749 conn->lll.dle.update = 1; in ull_dle_init()
2753 if (conn->lll.dle.local.max_tx_octets != PDU_DC_PAYLOAD_SIZE_MIN || in ull_dle_init()
2754 conn->lll.dle.local.max_rx_octets != PDU_DC_PAYLOAD_SIZE_MIN) { in ull_dle_init()
2755 conn->lll.dle.update = 1; in ull_dle_init()
2863 pa_event_counter = adv_sync->lll.event_counter; in mfy_past_sender_offset_get()
2885 window_widening_event_us = sync->lll.window_widening_event_us + in mfy_past_sender_offset_get()
2886 sync->lll.window_widening_periodic_us * (lazy + 1U); in mfy_past_sender_offset_get()
2891 pa_event_counter = sync->lll.event_counter + lazy; in mfy_past_sender_offset_get()
2921 if (!(phys & (conn->lll.phy_tx | conn->lll.phy_rx))) {
2946 conn->lll.pl_params.high_threshold = high_threshold;
2947 conn->lll.pl_params.high_hysteresis = high_hysteresis;
2948 conn->lll.pl_params.low_threshold = low_threshold;
2949 conn->lll.pl_params.low_hysteresis = low_hysteresis;
2950 conn->lll.pl_params.min_time_spent = min_time_spent;
2953 conn->lll.pl_state.min_time_counter = 0;
2954 conn->lll.pl_current_zone = BT_HCI_LE_ZONE_ENTERED_LOW;
2969 conn->lll.pl_params.enabled = enable;
2972 conn->lll.pl_state.min_time_counter = 0;
2973 conn->lll.pl_current_zone = BT_HCI_LE_ZONE_ENTERED_LOW;
2982 return (memq_peek(conn->lll.memq_tx.head, conn->lll.memq_tx.tail, NULL) == NULL);