From c2c319320970823b1fb1fdefe0c2cd1a9af852b0 Mon Sep 17 00:00:00 2001 From: zwj Date: Thu, 6 May 2021 15:47:26 +0800 Subject: [PATCH 1/3] hid examples support esp32c3/s3 --- .../esp_hid_device/main/esp_hid_device_main.c | 5 +++++ .../esp_hid_device/main/esp_hid_gap.c | 18 +++++++++++++++--- .../esp_hid_device/sdkconfig.defaults.esp32c3 | 14 ++++++++++++++ .../esp_hid_device/sdkconfig.defaults.esp32s3 | 14 ++++++++++++++ .../bluetooth/esp_hid_host/main/esp_hid_gap.c | 18 ++++++++++++++---- .../esp_hid_host/main/esp_hid_host_main.c | 4 ++++ .../esp_hid_host/sdkconfig.defaults.esp32c3 | 14 ++++++++++++++ .../esp_hid_host/sdkconfig.defaults.esp32s3 | 14 ++++++++++++++ 8 files changed, 94 insertions(+), 7 deletions(-) create mode 100644 examples/bluetooth/esp_hid_device/sdkconfig.defaults.esp32c3 create mode 100644 examples/bluetooth/esp_hid_device/sdkconfig.defaults.esp32s3 create mode 100644 examples/bluetooth/esp_hid_host/sdkconfig.defaults.esp32c3 create mode 100644 examples/bluetooth/esp_hid_host/sdkconfig.defaults.esp32s3 diff --git a/examples/bluetooth/esp_hid_device/main/esp_hid_device_main.c b/examples/bluetooth/esp_hid_device/main/esp_hid_device_main.c index 014849a216..d9a84119a6 100644 --- a/examples/bluetooth/esp_hid_device/main/esp_hid_device_main.c +++ b/examples/bluetooth/esp_hid_device/main/esp_hid_device_main.c @@ -368,7 +368,12 @@ void app_main(void) } ESP_ERROR_CHECK( ret ); +#if CONFIG_BT_CLASSIC_ENABLED ret = esp_hid_gap_init(ESP_BT_MODE_BTDM); +#else + ret = esp_hid_gap_init(ESP_BT_MODE_BLE); +#endif + ESP_ERROR_CHECK( ret ); ret = esp_hid_ble_gap_adv_init(ESP_HID_APPEARANCE_GENERIC, hid_config.device_name); diff --git a/examples/bluetooth/esp_hid_device/main/esp_hid_gap.c b/examples/bluetooth/esp_hid_device/main/esp_hid_gap.c index 2c3ff904d5..a75f6a1fea 100644 --- a/examples/bluetooth/esp_hid_device/main/esp_hid_gap.c +++ b/examples/bluetooth/esp_hid_device/main/esp_hid_gap.c @@ -135,6 +135,7 @@ static esp_hid_scan_result_t *find_scan_result(esp_bd_addr_t bda, esp_hid_scan_r return NULL; } +#if CONFIG_BT_CLASSIC_ENABLED static void add_bt_scan_result(esp_bd_addr_t bda, esp_bt_cod_t *cod, esp_bt_uuid_t *uuid, uint8_t *name, uint8_t name_len, int rssi) { esp_hid_scan_result_t *r = find_scan_result(bda, bt_scan_results); @@ -186,6 +187,7 @@ static void add_bt_scan_result(esp_bd_addr_t bda, esp_bt_cod_t *cod, esp_bt_uuid bt_scan_results = r; num_bt_scan_results++; } +#endif static void add_ble_scan_result(esp_bd_addr_t bda, esp_ble_addr_type_t addr_type, uint16_t appearance, uint8_t *name, uint8_t name_len, int rssi) { @@ -237,6 +239,7 @@ void print_uuid(esp_bt_uuid_t *uuid) } } +#if CONFIG_BT_CLASSIC_ENABLED static void handle_bt_device_result(struct disc_res_param *disc_res) { GAP_DBG_PRINTF("BT : " ESP_BD_ADDR_STR, ESP_BD_ADDR_HEX(disc_res->bda)); @@ -325,6 +328,7 @@ static void handle_bt_device_result(struct disc_res_param *disc_res) add_bt_scan_result(disc_res->bda, cod, &uuid, name, name_len, rssi); } } +#endif static void handle_ble_device_result(struct ble_scan_result_evt_param *scan_rst) { @@ -372,7 +376,7 @@ static void handle_ble_device_result(struct ble_scan_result_evt_param *scan_rst) } } - +#if CONFIG_BT_CLASSIC_ENABLED /* * BT GAP * */ @@ -440,6 +444,7 @@ static esp_err_t start_bt_scan(uint32_t seconds) } return ret; } +#endif /* * BLE GAP @@ -671,11 +676,15 @@ static esp_err_t init_low_level(uint8_t mode) { esp_err_t ret; esp_bt_controller_config_t bt_cfg = BT_CONTROLLER_INIT_CONFIG_DEFAULT(); +#if CONFIG_BT_CLASSIC_ENABLED if (mode & ESP_BT_MODE_CLASSIC_BT) { bt_cfg.mode = mode; bt_cfg.bt_max_acl_conn = 3; bt_cfg.bt_max_sync_conn = 3; - } else { + } else +#endif + { + ret = esp_bt_controller_mem_release(ESP_BT_MODE_CLASSIC_BT); if (ret) { ESP_LOGE(TAG, "esp_bt_controller_mem_release failed: %d", ret); @@ -705,13 +714,14 @@ static esp_err_t init_low_level(uint8_t mode) ESP_LOGE(TAG, "esp_bluedroid_enable failed: %d", ret); return ret; } - +#if CONFIG_BT_CLASSIC_ENABLED if (mode & ESP_BT_MODE_CLASSIC_BT) { ret = init_bt_gap(); if (ret) { return ret; } } +#endif if (mode & ESP_BT_MODE_BLE) { ret = init_ble_gap(); @@ -772,9 +782,11 @@ esp_err_t esp_hid_scan(uint32_t seconds, size_t *num_results, esp_hid_scan_resul } if (start_ble_scan(seconds) == ESP_OK) { +#if CONFIG_BT_CLASSIC_ENABLED if (start_bt_scan(seconds) == ESP_OK) { WAIT_BT_CB(); } +#endif WAIT_BLE_CB(); } else { return ESP_FAIL; diff --git a/examples/bluetooth/esp_hid_device/sdkconfig.defaults.esp32c3 b/examples/bluetooth/esp_hid_device/sdkconfig.defaults.esp32c3 new file mode 100644 index 0000000000..7a475bc657 --- /dev/null +++ b/examples/bluetooth/esp_hid_device/sdkconfig.defaults.esp32c3 @@ -0,0 +1,14 @@ +# +# Automatically generated file. DO NOT EDIT. +# Espressif IoT Development Framework (ESP-IDF) Project Configuration +# +CONFIG_IDF_CMAKE=y +CONFIG_IDF_TARGET_ARCH_RISCV=y +CONFIG_IDF_TARGET="esp32c3" +CONFIG_IDF_TARGET_ESP32C3=y +CONFIG_IDF_FIRMWARE_CHIP_ID=0x0005 + +# +# Bluetooth +# +CONFIG_BT_BLE_42_FEATURES_SUPPORTED=y diff --git a/examples/bluetooth/esp_hid_device/sdkconfig.defaults.esp32s3 b/examples/bluetooth/esp_hid_device/sdkconfig.defaults.esp32s3 new file mode 100644 index 0000000000..7a475bc657 --- /dev/null +++ b/examples/bluetooth/esp_hid_device/sdkconfig.defaults.esp32s3 @@ -0,0 +1,14 @@ +# +# Automatically generated file. DO NOT EDIT. +# Espressif IoT Development Framework (ESP-IDF) Project Configuration +# +CONFIG_IDF_CMAKE=y +CONFIG_IDF_TARGET_ARCH_RISCV=y +CONFIG_IDF_TARGET="esp32c3" +CONFIG_IDF_TARGET_ESP32C3=y +CONFIG_IDF_FIRMWARE_CHIP_ID=0x0005 + +# +# Bluetooth +# +CONFIG_BT_BLE_42_FEATURES_SUPPORTED=y diff --git a/examples/bluetooth/esp_hid_host/main/esp_hid_gap.c b/examples/bluetooth/esp_hid_host/main/esp_hid_gap.c index 2c3ff904d5..2d61e75a3e 100644 --- a/examples/bluetooth/esp_hid_host/main/esp_hid_gap.c +++ b/examples/bluetooth/esp_hid_host/main/esp_hid_gap.c @@ -135,6 +135,7 @@ static esp_hid_scan_result_t *find_scan_result(esp_bd_addr_t bda, esp_hid_scan_r return NULL; } +#if CONFIG_BT_CLASSIC_ENABLED static void add_bt_scan_result(esp_bd_addr_t bda, esp_bt_cod_t *cod, esp_bt_uuid_t *uuid, uint8_t *name, uint8_t name_len, int rssi) { esp_hid_scan_result_t *r = find_scan_result(bda, bt_scan_results); @@ -186,6 +187,7 @@ static void add_bt_scan_result(esp_bd_addr_t bda, esp_bt_cod_t *cod, esp_bt_uuid bt_scan_results = r; num_bt_scan_results++; } +#endif static void add_ble_scan_result(esp_bd_addr_t bda, esp_ble_addr_type_t addr_type, uint16_t appearance, uint8_t *name, uint8_t name_len, int rssi) { @@ -237,6 +239,7 @@ void print_uuid(esp_bt_uuid_t *uuid) } } +#if CONFIG_BT_CLASSIC_ENABLED static void handle_bt_device_result(struct disc_res_param *disc_res) { GAP_DBG_PRINTF("BT : " ESP_BD_ADDR_STR, ESP_BD_ADDR_HEX(disc_res->bda)); @@ -325,6 +328,7 @@ static void handle_bt_device_result(struct disc_res_param *disc_res) add_bt_scan_result(disc_res->bda, cod, &uuid, name, name_len, rssi); } } +#endif static void handle_ble_device_result(struct ble_scan_result_evt_param *scan_rst) { @@ -372,7 +376,7 @@ static void handle_ble_device_result(struct ble_scan_result_evt_param *scan_rst) } } - +#if CONFIG_BT_CLASSIC_ENABLED /* * BT GAP * */ @@ -440,6 +444,7 @@ static esp_err_t start_bt_scan(uint32_t seconds) } return ret; } +#endif /* * BLE GAP @@ -671,11 +676,14 @@ static esp_err_t init_low_level(uint8_t mode) { esp_err_t ret; esp_bt_controller_config_t bt_cfg = BT_CONTROLLER_INIT_CONFIG_DEFAULT(); +#if CONFIG_BT_CLASSIC_ENABLED if (mode & ESP_BT_MODE_CLASSIC_BT) { bt_cfg.mode = mode; bt_cfg.bt_max_acl_conn = 3; bt_cfg.bt_max_sync_conn = 3; - } else { + } else +#endif + { ret = esp_bt_controller_mem_release(ESP_BT_MODE_CLASSIC_BT); if (ret) { ESP_LOGE(TAG, "esp_bt_controller_mem_release failed: %d", ret); @@ -705,14 +713,14 @@ static esp_err_t init_low_level(uint8_t mode) ESP_LOGE(TAG, "esp_bluedroid_enable failed: %d", ret); return ret; } - +#if CONFIG_BT_CLASSIC_ENABLED if (mode & ESP_BT_MODE_CLASSIC_BT) { ret = init_bt_gap(); if (ret) { return ret; } } - +#endif if (mode & ESP_BT_MODE_BLE) { ret = init_ble_gap(); if (ret) { @@ -772,9 +780,11 @@ esp_err_t esp_hid_scan(uint32_t seconds, size_t *num_results, esp_hid_scan_resul } if (start_ble_scan(seconds) == ESP_OK) { +#if CONFIG_BT_CLASSIC_ENABLED if (start_bt_scan(seconds) == ESP_OK) { WAIT_BT_CB(); } +#endif WAIT_BLE_CB(); } else { return ESP_FAIL; diff --git a/examples/bluetooth/esp_hid_host/main/esp_hid_host_main.c b/examples/bluetooth/esp_hid_host/main/esp_hid_host_main.c index 065aa85ec6..351f18ac63 100644 --- a/examples/bluetooth/esp_hid_host/main/esp_hid_host_main.c +++ b/examples/bluetooth/esp_hid_host/main/esp_hid_host_main.c @@ -123,7 +123,11 @@ void app_main(void) ret = nvs_flash_init(); } ESP_ERROR_CHECK( ret ); +#if CONFIG_BT_CLASSIC_ENABLED ESP_ERROR_CHECK( esp_hid_gap_init(ESP_BT_MODE_BTDM) ); +#else + ESP_ERROR_CHECK( esp_hid_gap_init(ESP_BT_MODE_BLE) ); +#endif ESP_ERROR_CHECK( esp_ble_gattc_register_callback(esp_hidh_gattc_event_handler) ); esp_hidh_config_t config = { .callback = hidh_callback, diff --git a/examples/bluetooth/esp_hid_host/sdkconfig.defaults.esp32c3 b/examples/bluetooth/esp_hid_host/sdkconfig.defaults.esp32c3 new file mode 100644 index 0000000000..7a475bc657 --- /dev/null +++ b/examples/bluetooth/esp_hid_host/sdkconfig.defaults.esp32c3 @@ -0,0 +1,14 @@ +# +# Automatically generated file. DO NOT EDIT. +# Espressif IoT Development Framework (ESP-IDF) Project Configuration +# +CONFIG_IDF_CMAKE=y +CONFIG_IDF_TARGET_ARCH_RISCV=y +CONFIG_IDF_TARGET="esp32c3" +CONFIG_IDF_TARGET_ESP32C3=y +CONFIG_IDF_FIRMWARE_CHIP_ID=0x0005 + +# +# Bluetooth +# +CONFIG_BT_BLE_42_FEATURES_SUPPORTED=y diff --git a/examples/bluetooth/esp_hid_host/sdkconfig.defaults.esp32s3 b/examples/bluetooth/esp_hid_host/sdkconfig.defaults.esp32s3 new file mode 100644 index 0000000000..7a475bc657 --- /dev/null +++ b/examples/bluetooth/esp_hid_host/sdkconfig.defaults.esp32s3 @@ -0,0 +1,14 @@ +# +# Automatically generated file. DO NOT EDIT. +# Espressif IoT Development Framework (ESP-IDF) Project Configuration +# +CONFIG_IDF_CMAKE=y +CONFIG_IDF_TARGET_ARCH_RISCV=y +CONFIG_IDF_TARGET="esp32c3" +CONFIG_IDF_TARGET_ESP32C3=y +CONFIG_IDF_FIRMWARE_CHIP_ID=0x0005 + +# +# Bluetooth +# +CONFIG_BT_BLE_42_FEATURES_SUPPORTED=y From dc209757b181f68c997ff91542da4ef9ddf53154 Mon Sep 17 00:00:00 2001 From: zwj Date: Fri, 11 Jun 2021 16:29:52 +0800 Subject: [PATCH 2/3] - fix data length update failed - fix no callback when the value being used is the same as the value to be set --- .../bt/host/bluedroid/bta/dm/bta_dm_act.c | 26 +++++++++++++++-- .../bt/host/bluedroid/stack/btm/btm_acl.c | 1 + .../bt/host/bluedroid/stack/btm/btm_ble_gap.c | 1 + .../bluedroid/stack/btm/include/btm_int.h | 5 ++++ .../bt/host/bluedroid/stack/l2cap/l2c_ble.c | 28 ++++++++++++++++--- 5 files changed, 54 insertions(+), 7 deletions(-) diff --git a/components/bt/host/bluedroid/bta/dm/bta_dm_act.c b/components/bt/host/bluedroid/bta/dm/bta_dm_act.c index fe4aff3a3a..018723a0eb 100644 --- a/components/bt/host/bluedroid/bta/dm/bta_dm_act.c +++ b/components/bt/host/bluedroid/bta/dm/bta_dm_act.c @@ -5354,19 +5354,39 @@ void bta_dm_ble_set_scan_rsp_raw (tBTA_DM_MSG *p_data) *******************************************************************************/ void bta_dm_ble_set_data_length(tBTA_DM_MSG *p_data) { + UINT8 status = BTM_SUCCESS; tACL_CONN *p_acl_cb = btm_bda_to_acl(p_data->ble_set_data_length.remote_bda, BT_TRANSPORT_LE); if (p_acl_cb == NULL) { APPL_TRACE_ERROR("%s error: Invalid connection remote_bda.", __func__); return; + } + if(p_acl_cb->data_len_updating) { + // aleady have one cmd + if(p_acl_cb->data_len_waiting) { + status = BTM_ILLEGAL_ACTION; + } else { + // save the command + p_acl_cb->p_set_data_len_cback_waiting = p_data->ble_set_data_length.p_set_pkt_data_cback; + p_acl_cb->tx_len_waiting = p_data->ble_set_data_length.tx_data_length; + p_acl_cb->data_len_waiting = true; + return; + } } else { p_acl_cb->p_set_pkt_data_cback = p_data->ble_set_data_length.p_set_pkt_data_cback; - } - UINT8 status = BTM_SetBleDataLength(p_data->ble_set_data_length.remote_bda, + // if the value of the data length is same, triger callback directly + if(p_data->ble_set_data_length.tx_data_length == p_acl_cb->data_length_params.tx_len) { + if(p_data->ble_set_data_length.p_set_pkt_data_cback) { + (*p_data->ble_set_data_length.p_set_pkt_data_cback)(status, &p_acl_cb->data_length_params); + } + return; + } + status = BTM_SetBleDataLength(p_data->ble_set_data_length.remote_bda, p_data->ble_set_data_length.tx_data_length); + } if (status != BTM_SUCCESS) { APPL_TRACE_ERROR("%s failed\n", __FUNCTION__); } - if (p_data->ble_set_data_length.p_set_pkt_data_cback) { + if (p_data->ble_set_data_length.p_set_pkt_data_cback && status != BTM_SUCCESS) { if (p_acl_cb->data_length_params.tx_len == 0){ uint16_t length = controller_get_interface()->get_acl_data_size_ble(); p_acl_cb->data_length_params.rx_len = length; diff --git a/components/bt/host/bluedroid/stack/btm/btm_acl.c b/components/bt/host/bluedroid/stack/btm/btm_acl.c index 322508892a..bb8b4ac33e 100644 --- a/components/bt/host/bluedroid/stack/btm/btm_acl.c +++ b/components/bt/host/bluedroid/stack/btm/btm_acl.c @@ -954,6 +954,7 @@ void btm_read_remote_version_complete (UINT8 *p) if (HCI_LE_DATA_LEN_EXT_SUPPORTED(p_acl_cb->peer_le_features)) { uint16_t data_length = controller_get_interface()->get_ble_default_data_packet_length(); uint16_t data_txtime = controller_get_interface()->get_ble_default_data_packet_txtime(); + p_acl_cb->data_len_updating = true; btsnd_hcic_ble_set_data_length(p_acl_cb->hci_handle, data_length, data_txtime); } l2cble_notify_le_connection (p_acl_cb->remote_addr); diff --git a/components/bt/host/bluedroid/stack/btm/btm_ble_gap.c b/components/bt/host/bluedroid/stack/btm/btm_ble_gap.c index 96b0118e78..6d1ba22186 100644 --- a/components/bt/host/bluedroid/stack/btm/btm_ble_gap.c +++ b/components/bt/host/bluedroid/stack/btm/btm_ble_gap.c @@ -4199,6 +4199,7 @@ void btm_ble_read_remote_features_complete(UINT8 *p) if (HCI_LE_DATA_LEN_EXT_SUPPORTED(p_acl_cb->peer_le_features)) { uint16_t data_length = controller_get_interface()->get_ble_default_data_packet_length(); uint16_t data_txtime = controller_get_interface()->get_ble_default_data_packet_txtime(); + p_acl_cb->data_len_updating = true; btsnd_hcic_ble_set_data_length(p_acl_cb->hci_handle, data_length, data_txtime); } l2cble_notify_le_connection (p_acl_cb->remote_addr); diff --git a/components/bt/host/bluedroid/stack/btm/include/btm_int.h b/components/bt/host/bluedroid/stack/btm/include/btm_int.h index dfffe1dea0..ade758a81b 100644 --- a/components/bt/host/bluedroid/stack/btm/include/btm_int.h +++ b/components/bt/host/bluedroid/stack/btm/include/btm_int.h @@ -158,6 +158,11 @@ UINT8 active_remote_addr_type; /* local device address type fo BD_FEATURES peer_le_features; /* Peer LE Used features mask for the device */ tBTM_SET_PKT_DATA_LENGTH_CBACK *p_set_pkt_data_cback; tBTM_LE_SET_PKT_DATA_LENGTH_PARAMS data_length_params; +BOOLEAN data_len_updating; +// data len update cmd cache +BOOLEAN data_len_waiting; +tBTM_SET_PKT_DATA_LENGTH_CBACK *p_set_data_len_cback_waiting; +UINT16 tx_len_waiting; #endif tBTM_PM_MCB *p_pm_mode_db; /* Pointer to PM mode control block per ACL link */ diff --git a/components/bt/host/bluedroid/stack/l2cap/l2c_ble.c b/components/bt/host/bluedroid/stack/l2cap/l2c_ble.c index 3080c4484a..9fe8dfea07 100644 --- a/components/bt/host/bluedroid/stack/l2cap/l2c_ble.c +++ b/components/bt/host/bluedroid/stack/l2cap/l2c_ble.c @@ -1217,13 +1217,33 @@ void l2cble_process_data_length_change_event(UINT16 handle, UINT16 tx_data_len, } tACL_CONN *p_acl = btm_handle_to_acl(handle); + tBTM_LE_SET_PKT_DATA_LENGTH_PARAMS data_length_params; + data_length_params.rx_len = rx_data_len; + data_length_params.tx_len = tx_data_len; + p_acl->data_length_params = data_length_params; if (p_acl != NULL && p_acl->p_set_pkt_data_cback){ - tBTM_LE_SET_PKT_DATA_LENGTH_PARAMS data_length_params; - data_length_params.rx_len = tx_data_len; - data_length_params.tx_len = rx_data_len; - p_acl->data_length_params = data_length_params; (*p_acl->p_set_pkt_data_cback)(BTM_SUCCESS, &data_length_params); } + + if(p_acl) { + p_acl->data_len_updating = false; + if(p_acl->data_len_waiting) { + p_acl->data_len_waiting = false; + p_acl->p_set_pkt_data_cback = p_acl->p_set_data_len_cback_waiting; + p_acl->p_set_data_len_cback_waiting = NULL; + // if value is same, triger callback directly + if(p_acl->tx_len_waiting == p_acl->data_length_params.tx_len) { + if(p_acl->p_set_pkt_data_cback) { + (*p_acl->p_set_pkt_data_cback)(BTM_SUCCESS, &p_acl->data_length_params); + } + return; + } + p_acl->data_len_updating = true; + /* always set the TxTime to be max, as controller does not care for now */ + btsnd_hcic_ble_set_data_length(handle, p_acl->tx_len_waiting, + BTM_BLE_DATA_TX_TIME_MAX); + } + } } /******************************************************************************* From 4d3715c836c0a130a27f42e2625066cf5210da92 Mon Sep 17 00:00:00 2001 From: zwj Date: Tue, 15 Jun 2021 21:10:23 +0800 Subject: [PATCH 3/3] support hw recorrect --- components/bt/controller/esp32c3/Kconfig.in | 13 +++++++++++++ components/bt/controller/lib_esp32c3_family | 2 +- .../bt/include/esp32c3/include/esp_bt.h | 19 ++++++++++++++++++- 3 files changed, 32 insertions(+), 2 deletions(-) diff --git a/components/bt/controller/esp32c3/Kconfig.in b/components/bt/controller/esp32c3/Kconfig.in index 195d66ce7a..6f8fee6cd3 100644 --- a/components/bt/controller/esp32c3/Kconfig.in +++ b/components/bt/controller/esp32c3/Kconfig.in @@ -383,3 +383,16 @@ config BT_CTRL_HCI_TL_EFF default 0 if BT_CTRL_HCI_MODE_UART_H4 default 1 if BT_CTRL_HCI_M0DE_VHCI default 1 + +config BT_CTRL_AGC_RECORRECT_EN + bool "Enable HW AGC recorrect" + default n + help + Enable uncoded phy AGC recorrect + +config BT_CTRL_CODED_AGC_RECORRECT_EN + bool "Enable coded phy AGC recorrect" + depends on BT_CTRL_AGC_RECORRECT_EN + default n + help + Enable coded phy AGC recorrect diff --git a/components/bt/controller/lib_esp32c3_family b/components/bt/controller/lib_esp32c3_family index 1b8dfd6acd..12f00c45ce 160000 --- a/components/bt/controller/lib_esp32c3_family +++ b/components/bt/controller/lib_esp32c3_family @@ -1 +1 @@ -Subproject commit 1b8dfd6acdeac71f62c0a286ea364ef4e65259cc +Subproject commit 12f00c45ce9c8cf9a9b2e607b4954f12d4191ffb diff --git a/components/bt/include/esp32c3/include/esp_bt.h b/components/bt/include/esp32c3/include/esp_bt.h index 812efc83f2..a999686f90 100644 --- a/components/bt/include/esp32c3/include/esp_bt.h +++ b/components/bt/include/esp32c3/include/esp_bt.h @@ -26,7 +26,7 @@ extern "C" { #endif #define ESP_BT_CTRL_CONFIG_MAGIC_VAL 0x5A5AA5A5 -#define ESP_BT_CTRL_CONFIG_VERSION 0x02103310 +#define ESP_BT_CTRL_CONFIG_VERSION 0x02104270 #define ESP_BT_HCI_TL_MAGIC_VALUE 0xfadebead #define ESP_BT_HCI_TL_VERSION 0x00010000 @@ -130,6 +130,21 @@ enum { #define MESH_DUPLICATE_SCAN_CACHE_SIZE 0 #endif +#ifdef CONFIG_BT_CTRL_AGC_RECORRECT_EN +#define BT_CTRL_AGC_RECORRECT_EN CONFIG_BT_CTRL_AGC_RECORRECT_EN +#else +#define BT_CTRL_AGC_RECORRECT_EN 0 +#endif + +#ifdef CONFIG_BT_CTRL_CODED_AGC_RECORRECT_EN +#define BT_CTRL_CODED_AGC_RECORRECT CONFIG_BT_CTRL_CODED_AGC_RECORRECT_EN +#else +#define BT_CTRL_CODED_AGC_RECORRECT 0 +#endif + +#define AGC_RECORRECT_EN ((BT_CTRL_AGC_RECORRECT_EN << 0) | (BT_CTRL_CODED_AGC_RECORRECT <<1)) + + #define CFG_MASK_BIT_SCAN_DUPLICATE_OPTION (1<<0) #define CFG_NASK CFG_MASK_BIT_SCAN_DUPLICATE_OPTION @@ -163,6 +178,7 @@ enum { .coex_phy_coded_tx_rx_time_limit = CONFIG_BT_CTRL_COEX_PHY_CODED_TX_RX_TLIM_EFF, \ .hw_target_code = BLE_HW_TARGET_CODE_ESP32C3_CHIP_ECO0, \ .slave_ce_len_min = SLAVE_CE_LEN_MIN_DEFAULT, \ + .hw_recorrect_en = AGC_RECORRECT_EN, \ }; #else @@ -228,6 +244,7 @@ typedef struct { uint8_t coex_phy_coded_tx_rx_time_limit; /*!< limit on max tx/rx time in case of connection using CODED-PHY with Wi-Fi coexistence */ uint32_t hw_target_code; /*!< hardware target */ uint8_t slave_ce_len_min; + uint8_t hw_recorrect_en; } esp_bt_controller_config_t; /**