Skip to content

Commit

Permalink
Update bt lib for ESP32C3 and ESP32S3
Browse files Browse the repository at this point in the history
- Added config to disable scan backoff
- Fixed llm_scan.c assert at line 1485 during controller deinit if duplicate scan is not stopped
- Call pll track in controller task
  • Loading branch information
Weijian-Espressif committed Nov 16, 2022
1 parent 0e0b627 commit b2a17e9
Show file tree
Hide file tree
Showing 5 changed files with 35 additions and 3 deletions.
8 changes: 8 additions & 0 deletions components/bt/controller/esp32c3/Kconfig.in
Original file line number Diff line number Diff line change
Expand Up @@ -413,3 +413,11 @@ config BT_CTRL_CODED_AGC_RECORRECT_EN
default n
help
Enable coded phy AGC recorrect

config BT_CTRL_SCAN_BACKOFF_UPPERLIMITMAX
bool "Disable active scan backoff"
default n
help
Disable active scan backoff. The bluetooth spec requires that scanners should run a backoff procedure to
minimize collision of scan request PDUs from nultiple scanners. If scan backoff is disabled, in active
scanning, scan request PDU will be sent every time when HW receives scannable ADV PDU.
8 changes: 8 additions & 0 deletions components/bt/controller/esp32s3/Kconfig.in
Original file line number Diff line number Diff line change
Expand Up @@ -429,3 +429,11 @@ config BT_CTRL_CODED_AGC_RECORRECT_EN
default n
help
Enable coded phy AGC recorrect

config BT_CTRL_SCAN_BACKOFF_UPPERLIMITMAX
bool "Disable active scan backoff"
default n
help
Disable active scan backoff. The bluetooth spec requires that scanners should run a backoff procedure to
minimize collision of scan request PDUs from nultiple scanners. If scan backoff is disabled, in active
scanning, scan request PDU will be sent every time when HW receives scannable ADV PDU.
2 changes: 1 addition & 1 deletion components/bt/controller/lib_esp32c3_family
10 changes: 9 additions & 1 deletion components/bt/include/esp32c3/include/esp_bt.h
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ extern "C" {
#endif

#define ESP_BT_CTRL_CONFIG_MAGIC_VAL 0x5A5AA5A5
#define ESP_BT_CTRL_CONFIG_VERSION 0x02112280
#define ESP_BT_CTRL_CONFIG_VERSION 0x02209230

#define ESP_BT_HCI_TL_MAGIC_VALUE 0xfadebead
#define ESP_BT_HCI_TL_VERSION 0x00010000
Expand Down Expand Up @@ -141,6 +141,12 @@ typedef void (* esp_bt_hci_tl_callback_t) (void *arg, uint8_t status);
#define BT_CTRL_CODED_AGC_RECORRECT 0
#endif

#ifdef CONFIG_BT_CTRL_SCAN_BACKOFF_UPPERLIMITMAX
#define BT_CTRL_SCAN_BACKOFF_UPPERLIMITMAX CONFIG_BT_CTRL_SCAN_BACKOFF_UPPERLIMITMAX
#else
#define BT_CTRL_SCAN_BACKOFF_UPPERLIMITMAX 0
#endif

#define AGC_RECORRECT_EN ((BT_CTRL_AGC_RECORRECT_EN << 0) | (BT_CTRL_CODED_AGC_RECORRECT <<1))


Expand Down Expand Up @@ -181,6 +187,7 @@ typedef void (* esp_bt_hci_tl_callback_t) (void *arg, uint8_t status);
.slave_ce_len_min = SLAVE_CE_LEN_MIN_DEFAULT, \
.hw_recorrect_en = AGC_RECORRECT_EN, \
.cca_thresh = CONFIG_BT_CTRL_HW_CCA_VAL, \
.scan_backoff_upperlimitmax = BT_CTRL_SCAN_BACKOFF_UPPERLIMITMAX, \
}

#else
Expand Down Expand Up @@ -248,6 +255,7 @@ typedef struct {
uint8_t slave_ce_len_min;
uint8_t hw_recorrect_en;
uint8_t cca_thresh; /*!< cca threshold*/
uint16_t scan_backoff_upperlimitmax; /*!< scan backoff upperlimitmax value */
} esp_bt_controller_config_t;

/**
Expand Down
10 changes: 9 additions & 1 deletion components/bt/include/esp32s3/include/esp_bt.h
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ extern "C" {
#endif

#define ESP_BT_CTRL_CONFIG_MAGIC_VAL 0x5A5AA5A5
#define ESP_BT_CTRL_CONFIG_VERSION 0x02112280
#define ESP_BT_CTRL_CONFIG_VERSION 0x02209230

#define ESP_BT_HCI_TL_MAGIC_VALUE 0xfadebead
#define ESP_BT_HCI_TL_VERSION 0x00010000
Expand Down Expand Up @@ -129,6 +129,12 @@ typedef void (* esp_bt_hci_tl_callback_t) (void *arg, uint8_t status);
#define MESH_DUPLICATE_SCAN_CACHE_SIZE 0
#endif

#ifdef CONFIG_BT_CTRL_SCAN_BACKOFF_UPPERLIMITMAX
#define BT_CTRL_SCAN_BACKOFF_UPPERLIMITMAX CONFIG_BT_CTRL_SCAN_BACKOFF_UPPERLIMITMAX
#else
#define BT_CTRL_SCAN_BACKOFF_UPPERLIMITMAX 0
#endif

#ifdef CONFIG_BT_CTRL_AGC_RECORRECT_EN
#define BT_CTRL_AGC_RECORRECT_EN CONFIG_BT_CTRL_AGC_RECORRECT_EN
#else
Expand Down Expand Up @@ -180,6 +186,7 @@ typedef void (* esp_bt_hci_tl_callback_t) (void *arg, uint8_t status);
.slave_ce_len_min = SLAVE_CE_LEN_MIN_DEFAULT, \
.hw_recorrect_en = AGC_RECORRECT_EN, \
.cca_thresh = CONFIG_BT_CTRL_HW_CCA_VAL, \
.scan_backoff_upperlimitmax = BT_CTRL_SCAN_BACKOFF_UPPERLIMITMAX, \
}

#else
Expand Down Expand Up @@ -247,6 +254,7 @@ typedef struct {
uint8_t slave_ce_len_min; /*!< slave minimum ce length*/
uint8_t hw_recorrect_en;
uint8_t cca_thresh; /*!< cca threshold*/
uint16_t scan_backoff_upperlimitmax; /*!< scan backoff upperlimitmax value */
} esp_bt_controller_config_t;

/**
Expand Down

0 comments on commit b2a17e9

Please sign in to comment.