Bluetooth: controller: lll: add TX configuration of CTE in conn mode
Add configuration of transmission of CTE in connected mode. The transmission is enabled only for PDUs that have CTE present (CP) bit set to 1. Radio peripheral is configued by df_cte_tx_configure to transmit CTE. The same parameters are set for connected and connectionless mode. The function was changed to re-use the same code for configuration of CTE in both modes. Signed-off-by: Piotr Pryga <piotr.pryga@nordicsemi.no>
This commit is contained in:
parent
1dcbe73cc8
commit
aa3090dd7d
6 changed files with 170 additions and 39 deletions
|
@ -14,6 +14,7 @@
|
|||
|
||||
#include "hal/ccm.h"
|
||||
#include "hal/radio.h"
|
||||
#include "hal/radio_df.h"
|
||||
#include "hal/ticker.h"
|
||||
|
||||
#include "util/util.h"
|
||||
|
@ -30,6 +31,7 @@
|
|||
#include "lll_chan.h"
|
||||
|
||||
#include "lll_internal.h"
|
||||
#include "lll_df_internal.h"
|
||||
#include "lll_tim_internal.h"
|
||||
|
||||
#define BT_DBG_ENABLED IS_ENABLED(CONFIG_BT_DEBUG_HCI_DRIVER)
|
||||
|
@ -94,6 +96,7 @@ static int prepare_cb(struct lll_prepare_param *p)
|
|||
struct lll_conn *lll;
|
||||
struct ull_hdr *ull;
|
||||
uint32_t remainder;
|
||||
uint8_t cte_len;
|
||||
|
||||
DEBUG_RADIO_START_M(1);
|
||||
|
||||
|
@ -147,6 +150,18 @@ static int prepare_cb(struct lll_prepare_param *p)
|
|||
|
||||
/* Start setting up of Radio h/w */
|
||||
radio_reset();
|
||||
|
||||
#if defined(CONFIG_BT_CTLR_DF_CONN_CTE_TX)
|
||||
if (pdu_data_tx->cp) {
|
||||
lll_df_conn_cte_tx_enable(&lll->df_tx_cfg);
|
||||
|
||||
cte_len = CTE_LEN_US(pdu_data_tx->cte_info.time);
|
||||
} else
|
||||
#endif /* CONFIG_BT_CTLR_DF_CONN_CTE_TX */
|
||||
{
|
||||
cte_len = 0U;
|
||||
}
|
||||
|
||||
#if defined(CONFIG_BT_CTLR_TX_PWR_DYNAMIC_CONTROL)
|
||||
radio_tx_power_set(lll->tx_pwr_lvl);
|
||||
#else
|
||||
|
@ -158,18 +173,26 @@ static int prepare_cb(struct lll_prepare_param *p)
|
|||
sys_get_le24(lll->crc_init));
|
||||
lll_chan_set(data_chan_use);
|
||||
|
||||
/* setup the radio tx packet buffer */
|
||||
lll_conn_tx_pkt_set(lll, pdu_data_tx);
|
||||
|
||||
radio_isr_set(lll_conn_isr_tx, lll);
|
||||
|
||||
radio_tmr_tifs_set(EVENT_IFS_US);
|
||||
/* TODO: Remove TIFS extension from IFS when EVETNS_END is switched to EVENTS_PHYEND */
|
||||
radio_tmr_tifs_set(EVENT_IFS_US + cte_len);
|
||||
|
||||
#if defined(CONFIG_BT_CTLR_DF_CONN_CTE_TX)
|
||||
#if defined(CONFIG_BT_CTLR_PHY)
|
||||
radio_switch_complete_phyend_and_rx(lll->phy_rx);
|
||||
#else /* !CONFIG_BT_CTLR_PHY */
|
||||
radio_switch_complete_phyend_and_rx(0);
|
||||
#endif /* !CONFIG_BT_CTLR_PHY */
|
||||
#else
|
||||
#if defined(CONFIG_BT_CTLR_PHY)
|
||||
radio_switch_complete_and_rx(lll->phy_rx);
|
||||
#else /* !CONFIG_BT_CTLR_PHY */
|
||||
radio_switch_complete_and_rx(0);
|
||||
#endif /* !CONFIG_BT_CTLR_PHY */
|
||||
#endif /* CONFIG_BT_CTLR_DF_CONN_CTE_TX */
|
||||
|
||||
ticks_at_event = p->ticks_at_expire;
|
||||
ull = HDR_LLL2ULL(lll);
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
#include "hal/cpu.h"
|
||||
#include "hal/ccm.h"
|
||||
#include "hal/radio.h"
|
||||
#include "hal/radio_df.h"
|
||||
|
||||
#include "util/util.h"
|
||||
#include "util/mem.h"
|
||||
|
@ -46,6 +47,10 @@ static inline int isr_rx_pdu(struct lll_conn *lll, struct pdu_data *pdu_data_rx,
|
|||
struct node_tx **tx_release, uint8_t *is_done);
|
||||
static void empty_tx_init(void);
|
||||
|
||||
#if defined(CONFIG_BT_CTLR_DF_CONN_CTE_TX)
|
||||
static struct pdu_data *get_last_tx_pdu(struct lll_conn *lll);
|
||||
#endif /* CONFIG_BT_CTLR_DF_CONN_CTE_TX */
|
||||
|
||||
static uint8_t crc_expire;
|
||||
static uint8_t crc_valid;
|
||||
static uint16_t trx_cnt;
|
||||
|
@ -173,12 +178,16 @@ void lll_conn_isr_rx(void *param)
|
|||
struct pdu_data *pdu_data_tx;
|
||||
struct node_rx_pdu *node_rx;
|
||||
struct node_tx *tx_release;
|
||||
#if defined(HAL_RADIO_GPIO_HAVE_PA_PIN)
|
||||
uint32_t pa_lna_enable_us;
|
||||
#endif /* HAL_RADIO_GPIO_HAVE_PA_PIN */
|
||||
uint8_t is_rx_enqueue;
|
||||
struct lll_conn *lll;
|
||||
uint8_t rssi_ready;
|
||||
uint8_t is_ull_rx;
|
||||
uint8_t trx_done;
|
||||
uint8_t is_done;
|
||||
uint8_t cte_len;
|
||||
uint8_t crc_ok;
|
||||
|
||||
if (IS_ENABLED(CONFIG_BT_CTLR_PROFILE_ISR)) {
|
||||
|
@ -247,6 +256,17 @@ void lll_conn_isr_rx(void *param)
|
|||
is_empty_pdu_tx_retry = lll->empty;
|
||||
lll_conn_pdu_tx_prep(lll, &pdu_data_tx);
|
||||
|
||||
#if defined(CONFIG_BT_CTLR_DF_CONN_CTE_TX)
|
||||
if (pdu_data_tx->cp) {
|
||||
lll_df_conn_cte_tx_enable(&lll->df_tx_cfg);
|
||||
|
||||
cte_len = CTE_LEN_US(pdu_data_tx->cte_info.time);
|
||||
} else
|
||||
#endif /* CONFIG_BT_CTLR_DF_CONN_CTE_TX */
|
||||
{
|
||||
cte_len = 0U;
|
||||
}
|
||||
|
||||
/* Decide on event continuation and hence Radio Shorts to use */
|
||||
is_done = is_done || ((crc_ok) && (pdu_data_rx->md == 0) &&
|
||||
(pdu_data_tx->md == 0) &&
|
||||
|
@ -274,17 +294,29 @@ void lll_conn_isr_rx(void *param)
|
|||
#if defined(CONFIG_BT_PERIPHERAL)
|
||||
/* Event done for peripheral */
|
||||
} else {
|
||||
#if defined(CONFIG_BT_CTLR_DF_CONN_CTE_TX)
|
||||
radio_switch_complete_and_phy_end_disable();
|
||||
#else
|
||||
radio_switch_complete_and_disable();
|
||||
#endif /* CONFIG_BT_CTLR_DF_CONN_CTE_TX */
|
||||
#endif /* CONFIG_BT_PERIPHERAL */
|
||||
}
|
||||
} else {
|
||||
radio_tmr_tifs_set(EVENT_IFS_US);
|
||||
radio_tmr_tifs_set(EVENT_IFS_US + cte_len);
|
||||
|
||||
#if defined(CONFIG_BT_CTLR_DF_CONN_CTE_TX)
|
||||
#if defined(CONFIG_BT_CTLR_PHY)
|
||||
radio_switch_complete_phyend_and_rx(lll->phy_rx);
|
||||
#else /* !CONFIG_BT_CTLR_PHY */
|
||||
radio_switch_complete_phyend_and_rx(0);
|
||||
#endif /* !CONFIG_BT_CTLR_PHY */
|
||||
#else
|
||||
#if defined(CONFIG_BT_CTLR_PHY)
|
||||
radio_switch_complete_and_rx(lll->phy_rx);
|
||||
#else /* !CONFIG_BT_CTLR_PHY */
|
||||
radio_switch_complete_and_rx(0);
|
||||
#endif /* !CONFIG_BT_CTLR_PHY */
|
||||
#endif /* CONFIG_BT_CTLR_DF_CONN_CTE_TX */
|
||||
|
||||
radio_isr_set(lll_conn_isr_tx, param);
|
||||
|
||||
|
@ -310,15 +342,14 @@ void lll_conn_isr_rx(void *param)
|
|||
|
||||
radio_gpio_pa_setup();
|
||||
|
||||
pa_lna_enable_us =
|
||||
radio_tmr_tifs_base_get() + EVENT_IFS_US + cte_len - HAL_RADIO_GPIO_PA_OFFSET;
|
||||
#if defined(CONFIG_BT_CTLR_PHY)
|
||||
radio_gpio_pa_lna_enable(radio_tmr_tifs_base_get() + EVENT_IFS_US -
|
||||
radio_rx_chain_delay_get(lll->phy_rx, 1) -
|
||||
HAL_RADIO_GPIO_PA_OFFSET);
|
||||
pa_lna_enable_us -= radio_rx_chain_delay_get(lll->phy_rx, PHY_FLAGS_S8);
|
||||
#else /* !CONFIG_BT_CTLR_PHY */
|
||||
radio_gpio_pa_lna_enable(radio_tmr_tifs_base_get() + EVENT_IFS_US -
|
||||
radio_rx_chain_delay_get(0, 0) -
|
||||
HAL_RADIO_GPIO_PA_OFFSET);
|
||||
pa_lna_enable_us -= radio_rx_chain_delay_get(0, PHY_FLAGS_S2);
|
||||
#endif /* !CONFIG_BT_CTLR_PHY */
|
||||
radio_gpio_pa_lna_enable(pa_lna_enable_us);
|
||||
#endif /* HAL_RADIO_GPIO_HAVE_PA_PIN */
|
||||
|
||||
/* assert if radio packet ptr is not set and radio started tx */
|
||||
|
@ -404,6 +435,10 @@ lll_conn_isr_rx_exit:
|
|||
|
||||
void lll_conn_isr_tx(void *param)
|
||||
{
|
||||
#if defined(CONFIG_BT_CTLR_DF_CONN_CTE_TX)
|
||||
static struct pdu_data *pdu_tx;
|
||||
uint8_t cte_len;
|
||||
#endif /* CONFIG_BT_CTLR_DF_CONN_CTE_TX */
|
||||
struct lll_conn *lll;
|
||||
uint32_t hcto;
|
||||
|
||||
|
@ -428,9 +463,22 @@ void lll_conn_isr_tx(void *param)
|
|||
/* assert if radio packet ptr is not set and radio started rx */
|
||||
LL_ASSERT(!radio_is_ready());
|
||||
|
||||
#if defined(CONFIG_BT_CTLR_DF_CONN_CTE_TX)
|
||||
pdu_tx = get_last_tx_pdu(lll);
|
||||
LL_ASSERT(pdu_tx);
|
||||
|
||||
if (pdu_tx->cp) {
|
||||
cte_len = CTE_LEN_US(pdu_tx->cte_info.time);
|
||||
} else {
|
||||
cte_len = 0U;
|
||||
}
|
||||
#endif /* CONFIG_BT_CTLR_DF_CONN_CTE_TX */
|
||||
/* +/- 2us active clock jitter, +1 us hcto compensation */
|
||||
hcto = radio_tmr_tifs_base_get() + EVENT_IFS_US + 4 +
|
||||
RANGE_DELAY_US + 1;
|
||||
hcto = radio_tmr_tifs_base_get() + EVENT_IFS_US + (EVENT_CLOCK_JITTER_US << 1) +
|
||||
RANGE_DELAY_US + HCTO_START_DELAY_US;
|
||||
#if defined(CONFIG_BT_CTLR_DF_CONN_CTE_TX)
|
||||
hcto += cte_len;
|
||||
#endif /* CONFIG_BT_CTLR_DF_CONN_CTE_TX */
|
||||
#if defined(CONFIG_BT_CTLR_PHY)
|
||||
hcto += radio_rx_chain_delay_get(lll->phy_rx, 1);
|
||||
hcto += addr_us_get(lll->phy_rx);
|
||||
|
@ -529,8 +577,8 @@ void lll_conn_rx_pkt_set(struct lll_conn *lll)
|
|||
|
||||
void lll_conn_tx_pkt_set(struct lll_conn *lll, struct pdu_data *pdu_data_tx)
|
||||
{
|
||||
uint8_t phy, flags, pkt_flags;
|
||||
uint16_t max_tx_octets;
|
||||
uint8_t phy, flags;
|
||||
|
||||
#if defined(CONFIG_BT_CTLR_DATA_LENGTH)
|
||||
#ifdef CONFIG_BT_LL_SW_LLCP_LEGACY
|
||||
|
@ -552,20 +600,27 @@ void lll_conn_tx_pkt_set(struct lll_conn *lll, struct pdu_data *pdu_data_tx)
|
|||
|
||||
radio_phy_set(phy, flags);
|
||||
|
||||
#if defined(CONFIG_BT_CTLR_DF_CONN_CTE_TX)
|
||||
if (pdu_data_tx->cp) {
|
||||
pkt_flags = RADIO_PKT_CONF_FLAGS(RADIO_PKT_CONF_PDU_TYPE_DC, phy,
|
||||
RADIO_PKT_CONF_CTE_ENABLED);
|
||||
} else
|
||||
#endif /* CONFIG_BT_CTLR_DF_CONN_CTE_TX */
|
||||
{
|
||||
pkt_flags = RADIO_PKT_CONF_FLAGS(RADIO_PKT_CONF_PDU_TYPE_DC, phy,
|
||||
RADIO_PKT_CONF_CTE_DISABLED);
|
||||
}
|
||||
|
||||
if (0) {
|
||||
#if defined(CONFIG_BT_CTLR_LE_ENC)
|
||||
} else if (lll->enc_tx) {
|
||||
radio_pkt_configure(RADIO_PKT_CONF_LENGTH_8BIT, (max_tx_octets + PDU_MIC_SIZE),
|
||||
RADIO_PKT_CONF_FLAGS(RADIO_PKT_CONF_PDU_TYPE_DC, phy,
|
||||
RADIO_PKT_CONF_CTE_DISABLED));
|
||||
pkt_flags);
|
||||
|
||||
radio_pkt_tx_set(radio_ccm_tx_pkt_set(&lll->ccm_tx,
|
||||
pdu_data_tx));
|
||||
radio_pkt_tx_set(radio_ccm_tx_pkt_set(&lll->ccm_tx, pdu_data_tx));
|
||||
#endif /* CONFIG_BT_CTLR_LE_ENC */
|
||||
} else {
|
||||
radio_pkt_configure(RADIO_PKT_CONF_LENGTH_8BIT, max_tx_octets,
|
||||
RADIO_PKT_CONF_FLAGS(RADIO_PKT_CONF_PDU_TYPE_DC, phy,
|
||||
RADIO_PKT_CONF_CTE_DISABLED));
|
||||
radio_pkt_configure(RADIO_PKT_CONF_LENGTH_8BIT, max_tx_octets, pkt_flags);
|
||||
|
||||
radio_pkt_tx_set(pdu_data_tx);
|
||||
}
|
||||
|
@ -873,3 +928,28 @@ static void empty_tx_init(void)
|
|||
p->resv = 0U;
|
||||
#endif /* CONFIG_BT_CTLR_DATA_LENGTH_CLEAR */
|
||||
}
|
||||
|
||||
#if defined(CONFIG_BT_CTLR_DF_CONN_CTE_TX)
|
||||
/**
|
||||
* @brief Get latest transmitted pdu_data instance
|
||||
*
|
||||
* @param lll Pointer to lll_conn object
|
||||
*
|
||||
* @return Return pointer to latest pdu_data instance
|
||||
*/
|
||||
static struct pdu_data *get_last_tx_pdu(struct lll_conn *lll)
|
||||
{
|
||||
struct node_tx *tx;
|
||||
struct pdu_data *p;
|
||||
memq_link_t *link;
|
||||
|
||||
link = memq_peek(lll->memq_tx.head, lll->memq_tx.tail, (void **)&tx);
|
||||
if (lll->empty || !link) {
|
||||
p = radio_pkt_empty_get();
|
||||
} else {
|
||||
p = (void *)(tx->pdu + lll->packet_tx_head_offset);
|
||||
}
|
||||
|
||||
return p;
|
||||
}
|
||||
#endif /* CONFIG_BT_CTLR_DF_CONN_CTE_TX */
|
||||
|
|
|
@ -32,9 +32,10 @@
|
|||
#include "hal/debug.h"
|
||||
|
||||
static int init_reset(void);
|
||||
#if defined(CONFIG_BT_CTLR_DF_ADV_CTE_TX)
|
||||
static void df_cte_tx_configure(const struct lll_df_adv_cfg *df_cfg);
|
||||
#endif /* CONFIG_BT_CTLR_DF_ADV_CTE_TX */
|
||||
#if defined(CONFIG_BT_CTLR_DF_ADV_CTE_TX) || defined(CONFIG_BT_CTLR_DF_CONN_CTE_TX)
|
||||
static void df_cte_tx_configure(uint8_t cte_type, uint8_t cte_length, uint8_t ant_ids_len,
|
||||
const uint8_t *ant_ids);
|
||||
#endif /* CONFIG_BT_CTLR_DF_ADV_CTE_TX || CONFIG_BT_CTLR_DF_CONN_CTE_TX */
|
||||
/* @brief Function performs Direction Finding initialization
|
||||
*
|
||||
* @return Zero in case of success, other value in case of failure.
|
||||
|
@ -67,6 +68,20 @@ uint8_t lll_df_ant_num_get(void)
|
|||
return radio_df_ant_num_get();
|
||||
}
|
||||
|
||||
#if defined(CONFIG_BT_CTLR_DF_CONN_CTE_TX)
|
||||
/**
|
||||
* @brief Function enables transmission of Constant Tone Extension by radio peripheral in connected
|
||||
* mode.
|
||||
*
|
||||
* @param df_cfg Pointer to configuration of the CTE.
|
||||
*/
|
||||
void lll_df_conn_cte_tx_enable(const struct lll_df_conn_tx_cfg *df_cfg)
|
||||
{
|
||||
df_cte_tx_configure(df_cfg->cte_type, df_cfg->cte_length, df_cfg->ant_sw_len,
|
||||
df_cfg->ant_ids);
|
||||
}
|
||||
#endif /* CONFIG_BT_CTLR_DF_CONN_CTE_TX */
|
||||
|
||||
#if defined(CONFIG_BT_CTLR_DF_ADV_CTE_TX)
|
||||
/* @brief Function enables transmission of Constant Tone Extension.
|
||||
*
|
||||
|
@ -95,7 +110,8 @@ void lll_df_cte_tx_enable(struct lll_adv_sync *lll_sync, const struct pdu_adv *p
|
|||
df_cfg = lll_adv_sync_extra_data_curr_get(lll_sync);
|
||||
LL_ASSERT(df_cfg);
|
||||
|
||||
df_cte_tx_configure(df_cfg);
|
||||
df_cte_tx_configure(df_cfg->cte_type, df_cfg->cte_length,
|
||||
df_cfg->ant_sw_len, df_cfg->ant_ids);
|
||||
|
||||
lll_sync->cte_started = 1U;
|
||||
*cte_len_us = CTE_LEN_US(df_cfg->cte_length);
|
||||
|
@ -245,37 +261,38 @@ static int init_reset(void)
|
|||
return 0;
|
||||
}
|
||||
|
||||
#if defined(CONFIG_BT_CTLR_DF_ADV_CTE_TX)
|
||||
/* @brief Function initializes transmission of Constant Tone Extension.
|
||||
#if defined(CONFIG_BT_CTLR_DF_ADV_CTE_TX) || defined(CONFIG_BT_CTLR_DF_CONN_CTE_TX)
|
||||
/**
|
||||
* @brief Function initializes transmission of Constant Tone Extension.
|
||||
*
|
||||
* @param df_cfg Pointer to direction finding configuration
|
||||
* @param cte_type Type of the CTE
|
||||
* @param cte_length Length of CTE in units of 8 us
|
||||
* @param ant_ids_len Length of antenna identifiers array
|
||||
* @param ant_ids Pointer to antenna identifiers array
|
||||
*
|
||||
* @Note Pay attention that first two antenna identifiers in a switch
|
||||
* pattern df_cfg->ant_ids has special purpose. First one is used in guard period,
|
||||
* second in reference period. Actual switching is processed from third antenna.
|
||||
*
|
||||
* In case of AoA mode df_ant_sw_len and df->ant_ids members are not used.
|
||||
* In case of AoA mode ant_sw_len and ant_ids members are not used.
|
||||
*/
|
||||
static void df_cte_tx_configure(const struct lll_df_adv_cfg *df_cfg)
|
||||
static void df_cte_tx_configure(uint8_t cte_type, uint8_t cte_length, uint8_t ant_ids_len,
|
||||
const uint8_t *ant_ids)
|
||||
{
|
||||
if (df_cfg->cte_type == BT_HCI_LE_AOA_CTE) {
|
||||
if (cte_type == BT_HCI_LE_AOA_CTE) {
|
||||
radio_df_mode_set_aoa();
|
||||
radio_df_cte_tx_aoa_set(df_cfg->cte_length);
|
||||
radio_df_cte_tx_aoa_set(cte_length);
|
||||
}
|
||||
#if defined(CONFIG_BT_CTLR_DF_ANT_SWITCH_TX)
|
||||
else {
|
||||
radio_df_mode_set_aod();
|
||||
|
||||
if (df_cfg->cte_type == BT_HCI_LE_AOD_CTE_1US) {
|
||||
radio_df_cte_tx_aod_2us_set(df_cfg->cte_length);
|
||||
if (cte_type == BT_HCI_LE_AOD_CTE_1US) {
|
||||
radio_df_cte_tx_aod_2us_set(cte_length);
|
||||
} else {
|
||||
radio_df_cte_tx_aod_4us_set(df_cfg->cte_length);
|
||||
radio_df_cte_tx_aod_4us_set(cte_length);
|
||||
}
|
||||
|
||||
radio_df_ant_switching_pin_sel_cfg();
|
||||
radio_df_ant_switch_pattern_clear();
|
||||
radio_df_ant_switch_pattern_set(df_cfg->ant_ids, df_cfg->ant_sw_len);
|
||||
radio_df_ant_switch_pattern_set(ant_ids, ant_ids_len);
|
||||
}
|
||||
#endif /* CONFIG_BT_CTLR_DF_ANT_SWITCH_TX */
|
||||
}
|
||||
#endif /* CONFIG_BT_CTLR_DF_ADV_CTE_TX */
|
||||
#endif /* CONFIG_BT_CTLR_DF_ADV_CTE_TX || CONFIG_BT_CTLR_DF_CONN_CTE_TX */
|
||||
|
|
|
@ -58,3 +58,6 @@ static inline uint8_t lll_df_sync_cfg_is_modified(struct lll_df_sync *df_cfg)
|
|||
/* Enables CTE reception according to provided configuration */
|
||||
void lll_df_conf_cte_rx_enable(uint8_t slot_duration, uint8_t ant_num, uint8_t *ant_ids,
|
||||
uint8_t chan_idx);
|
||||
|
||||
/* Enable CTE transmission according to provided configuration */
|
||||
void lll_df_conn_cte_tx_enable(const struct lll_df_conn_tx_cfg *df_cfg);
|
||||
|
|
|
@ -12,6 +12,12 @@
|
|||
#define RANGE_DISTANCE 1000 /* meters */
|
||||
#define RANGE_DELAY_US (2 * RANGE_DISTANCE * 4 / 1000)
|
||||
|
||||
/* This is a compensation of delay between PPI task START and timer start counting.
|
||||
* HCTO is a timer used to stop Radio peripheral in receive mode if packet address was not
|
||||
* received.
|
||||
*/
|
||||
#define HCTO_START_DELAY_US 1U
|
||||
|
||||
static inline uint32_t addr_us_get(uint8_t phy)
|
||||
{
|
||||
switch (phy) {
|
||||
|
|
|
@ -2060,9 +2060,11 @@ void ull_pdu_data_init(struct pdu_data *pdu_tx)
|
|||
|
||||
pdu_tx->cp = false;
|
||||
pdu_tx->rfu = 0U;
|
||||
#if !defined(CONFIG_SOC_OPENISA_RV32M1_RISCV32)
|
||||
#if !defined(CONFIG_BT_CTLR_DATA_LENGTH_CLEAR)
|
||||
pdu_tx->resv = 0U;
|
||||
#endif /* CONFIG_BT_CTLR_DATA_LENGTH_CLEAR */
|
||||
#endif /* !CONFIG_SOC_OPENISA_RV32M1_RISCV32 */
|
||||
}
|
||||
|
||||
static int init_reset(void)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue