فهرست منبع

Merge branch 'bugfix/coex_bt_ble_stuck' into 'master'

components/bt: Fix A2DP stuck when BLE's interval is too small

See merge request espressif/esp-idf!5587
Jiang Jiang Jian 6 سال پیش
والد
کامیت
da877bcc8f
3فایلهای تغییر یافته به همراه24 افزوده شده و 2 حذف شده
  1. 14 0
      components/bt/Kconfig
  2. 1 1
      components/bt/controller/lib
  3. 9 1
      components/bt/include/esp_bt.h

+ 14 - 0
components/bt/Kconfig

@@ -78,6 +78,20 @@ menu "Bluetooth"
             default 1 if BTDM_CTRL_BR_EDR_SCO_DATA_PATH_PCM
             default 1 if BTDM_CTRL_BR_EDR_SCO_DATA_PATH_PCM
             default 0
             default 0
 
 
+        config BTDM_CTRL_AUTO_LATENCY
+            bool "Auto latency"
+            depends on BTDM_CTRL_MODE_BTDM
+            default n
+            help
+                BLE auto latency, used to enhance classic BT performance
+                while classic BT and BLE are enabled at the same time.
+
+        config BTDM_CTRL_AUTO_LATENCY_EFF
+            bool
+            default BTDM_CTRL_AUTO_LATENCY if BTDM_CTRL_MODE_BTDM
+            default n
+
+
         config BTDM_CTRL_BLE_MAX_CONN_EFF
         config BTDM_CTRL_BLE_MAX_CONN_EFF
             int
             int
             default BTDM_CTRL_BLE_MAX_CONN if BTDM_CTRL_MODE_BLE_ONLY || BTDM_CTRL_MODE_BTDM
             default BTDM_CTRL_BLE_MAX_CONN if BTDM_CTRL_MODE_BLE_ONLY || BTDM_CTRL_MODE_BTDM

+ 1 - 1
components/bt/controller/lib

@@ -1 +1 @@
-Subproject commit 5a2416f8b8729a44c9396747631246432b109f0d
+Subproject commit 0a707c811ee824c9777b8712d2edf979fa8d2a2e

+ 9 - 1
components/bt/include/esp_bt.h

@@ -25,7 +25,7 @@
 extern "C" {
 extern "C" {
 #endif
 #endif
 
 
-#define ESP_BT_CONTROLLER_CONFIG_MAGIC_VAL  0x20190506
+#define ESP_BT_CONTROLLER_CONFIG_MAGIC_VAL  0x20200106
 
 
 /**
 /**
  * @brief Bluetooth mode for controller enable/disable
  * @brief Bluetooth mode for controller enable/disable
@@ -111,6 +111,12 @@ the adv packet will be discarded until the memory is restored. */
 #define BTDM_CONTROLLER_MODE_EFF                    ESP_BT_MODE_BTDM
 #define BTDM_CONTROLLER_MODE_EFF                    ESP_BT_MODE_BTDM
 #endif
 #endif
 
 
+#ifdef CONFIG_BTDM_CTRL_AUTO_LATENCY_EFF
+#define BTDM_CTRL_AUTO_LATENCY_EFF CONFIG_BTDM_CTRL_AUTO_LATENCY_EFF
+#else
+#define BTDM_CTRL_AUTO_LATENCY_EFF false
+#endif
+
 #define BTDM_CONTROLLER_BLE_MAX_CONN_LIMIT          9   //Maximum BLE connection limitation
 #define BTDM_CONTROLLER_BLE_MAX_CONN_LIMIT          9   //Maximum BLE connection limitation
 #define BTDM_CONTROLLER_BR_EDR_MAX_ACL_CONN_LIMIT   7   //Maximum ACL connection limitation
 #define BTDM_CONTROLLER_BR_EDR_MAX_ACL_CONN_LIMIT   7   //Maximum ACL connection limitation
 #define BTDM_CONTROLLER_BR_EDR_MAX_SYNC_CONN_LIMIT  3   //Maximum SCO/eSCO connection limitation
 #define BTDM_CONTROLLER_BR_EDR_MAX_SYNC_CONN_LIMIT  3   //Maximum SCO/eSCO connection limitation
@@ -133,6 +139,7 @@ the adv packet will be discarded until the memory is restored. */
     .ble_max_conn = CONFIG_BTDM_CTRL_BLE_MAX_CONN_EFF,                     \
     .ble_max_conn = CONFIG_BTDM_CTRL_BLE_MAX_CONN_EFF,                     \
     .bt_max_acl_conn = CONFIG_BTDM_CTRL_BR_EDR_MAX_ACL_CONN_EFF,           \
     .bt_max_acl_conn = CONFIG_BTDM_CTRL_BR_EDR_MAX_ACL_CONN_EFF,           \
     .bt_sco_datapath = CONFIG_BTDM_CTRL_BR_EDR_SCO_DATA_PATH_EFF,          \
     .bt_sco_datapath = CONFIG_BTDM_CTRL_BR_EDR_SCO_DATA_PATH_EFF,          \
+    .auto_latency = BTDM_CTRL_AUTO_LATENCY_EFF,                            \
     .bt_max_sync_conn = CONFIG_BTDM_CTRL_BR_EDR_MAX_SYNC_CONN_EFF,         \
     .bt_max_sync_conn = CONFIG_BTDM_CTRL_BR_EDR_MAX_SYNC_CONN_EFF,         \
     .ble_sca = CONFIG_BTDM_BLE_SLEEP_CLOCK_ACCURACY_INDEX_EFF,             \
     .ble_sca = CONFIG_BTDM_BLE_SLEEP_CLOCK_ACCURACY_INDEX_EFF,             \
     .magic = ESP_BT_CONTROLLER_CONFIG_MAGIC_VAL,                           \
     .magic = ESP_BT_CONTROLLER_CONFIG_MAGIC_VAL,                           \
@@ -165,6 +172,7 @@ typedef struct {
     uint8_t ble_max_conn;                   /*!< BLE maximum connection numbers */
     uint8_t ble_max_conn;                   /*!< BLE maximum connection numbers */
     uint8_t bt_max_acl_conn;                /*!< BR/EDR maximum ACL connection numbers */
     uint8_t bt_max_acl_conn;                /*!< BR/EDR maximum ACL connection numbers */
     uint8_t bt_sco_datapath;                /*!< SCO data path, i.e. HCI or PCM module */
     uint8_t bt_sco_datapath;                /*!< SCO data path, i.e. HCI or PCM module */
+    bool auto_latency;                      /*!< BLE auto latency, used to enhance classic BT performance */
     /*
     /*
      * Following parameters can not be configured runtime when call esp_bt_controller_init()
      * Following parameters can not be configured runtime when call esp_bt_controller_init()
      * It will be overwrite with a constant value which in menuconfig or from a macro.
      * It will be overwrite with a constant value which in menuconfig or from a macro.