From 9463114e274635592f1e99468f1950adf2af9760 Mon Sep 17 00:00:00 2001 From: baohongde Date: Thu, 16 Jan 2020 16:19:14 +0800 Subject: [PATCH] components/bt: backport release/v3.2 Fix A2DP stuck when BLE's interval is too small Fix assert due to no free element from Bugfix that bluetooth controller may not be able to enter sleep after end of wake up request Fix LMP sniff req timeout --- components/bt/Kconfig | 13 +++++++++++++ components/bt/include/esp_bt.h | 10 +++++++++- components/bt/lib | 2 +- 3 files changed, 23 insertions(+), 2 deletions(-) diff --git a/components/bt/Kconfig b/components/bt/Kconfig index dbef9daf5..5e9b4ecba 100644 --- a/components/bt/Kconfig +++ b/components/bt/Kconfig @@ -76,6 +76,19 @@ config BTDM_CONTROLLER_BR_EDR_SCO_DATA_PATH_EFF default 1 if BTDM_CONTROLLER_BR_EDR_SCO_DATA_PATH_PCM default 0 +config BTDM_CONTROLLER_AUTO_LATENCY + bool "Auto latency" + depends on BTDM_CONTROLLER_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_CONTROLLER_AUTO_LATENCY_EFF + bool + default BTDM_CONTROLLER_AUTO_LATENCY if BTDM_CONTROLLER_MODE_BTDM + default n + config BTDM_CONTROLLER_BLE_MAX_CONN_EFF int default BTDM_CONTROLLER_BLE_MAX_CONN if BTDM_CONTROLLER_MODE_BLE_ONLY || BTDM_CONTROLLER_MODE_BTDM diff --git a/components/bt/include/esp_bt.h b/components/bt/include/esp_bt.h index a0648645c..77ec63837 100644 --- a/components/bt/include/esp_bt.h +++ b/components/bt/include/esp_bt.h @@ -25,7 +25,7 @@ extern "C" { #endif -#define ESP_BT_CONTROLLER_CONFIG_MAGIC_VAL 0x20190506 +#define ESP_BT_CONTROLLER_CONFIG_MAGIC_VAL 0x20200106 /** * @brief Bluetooth mode for controller enable/disable @@ -96,6 +96,12 @@ the adv packet will be discarded until the memory is restored. */ #define BTDM_CONTROLLER_MODE_EFF ESP_BT_MODE_BTDM #endif +#ifdef CONFIG_BTDM_CONTROLLER_AUTO_LATENCY_EFF +#define BTDM_CONTROLLER_AUTO_LATENCY_EFF CONFIG_BTDM_CONTROLLER_AUTO_LATENCY_EFF +#else +#define BTDM_CONTROLLER_AUTO_LATENCY_EFF false +#endif + #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_SYNC_CONN_LIMIT 3 //Maximum SCO/eSCO connection limitation @@ -119,6 +125,7 @@ the adv packet will be discarded until the memory is restored. */ .bt_max_acl_conn = CONFIG_BTDM_CONTROLLER_BR_EDR_MAX_ACL_CONN_EFF, \ .bt_sco_datapath = CONFIG_BTDM_CONTROLLER_BR_EDR_SCO_DATA_PATH_EFF, \ .bt_max_sync_conn = CONFIG_BTDM_CONTROLLER_BR_EDR_MAX_SYNC_CONN_EFF, \ + .auto_latency = BTDM_CONTROLLER_AUTO_LATENCY_EFF, \ .magic = ESP_BT_CONTROLLER_CONFIG_MAGIC_VAL, \ }; @@ -149,6 +156,7 @@ typedef struct { uint8_t ble_max_conn; /*!< BLE maximum 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 */ + 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() * It will be overwrite with a constant value which in menuconfig or from a macro. diff --git a/components/bt/lib b/components/bt/lib index d60b092e8..a0814193a 160000 --- a/components/bt/lib +++ b/components/bt/lib @@ -1 +1 @@ -Subproject commit d60b092e8481ca588fb38fbf41189bafab1a4a7a +Subproject commit a0814193a7572acb0e527e72f000886d6bc73fc0