Commit Graph

1996 Commits

Author SHA1 Message Date
wangmengyang
ee480b7776 Refactor Bluetooth init/deinit mechanism
free osi_funcs struct memory duiring failure of controller_init when necessary

components/bt: use s_lp_stat.phy_enabled to control the on/off of phy module

clean up style for controller_disable

clean up some empty functions and unnecessary comments

Added async wakeup src "BTDM_ASYNC_WAKEUP_SRC_TMR"

remove use of assert in controller_init, set error code upon some exceptions

move stop esp_timer early to phase0, add state variable wakeup_timer_started
2021-01-28 19:27:17 +08:00
wangmengyang
06ea8a3028 remove use of macro "CONFIG_SPIRAM_USE_MALLOC" 2021-01-28 19:25:03 +08:00
wangmengyang
086b36d737 Refactor Bluetooth sleep mechanism
Refactor bluetooth hardware PowerUp/PowerDown functions

component/bt: fix use of a deprecated MACRO "CONFIG_ESP32_WIFI_SW_COEXIST_ENABLE"

component/bt: fix sleep wakeup in controller disable procedure

remove use of s_pm_lock_sem

1. Modified the waking up approach from async to sync: post a message to controller task upon vhci downstream packets or controller disable, and in response, controller task goes through the wake-up procedure
2. Added Controller status check for the esp_vhci APIs
3. Adjust the procedure during controller_init, check the validity of arguments first

Some minor modifications for bluetooth sleep control and configuration

1. use variable flag s_btdm_allow_light_sleep to control the use of s_light_sleep_pm_lock
2. use variable btdm_lpclk_sel to choose bluetooth sleep clock, support only for external 32kHz crystal temporarily

component/bt: improve async_wakeup function

1. check power state first and then decide if wakeup needs to be performed
2. change the meaning of the return value, if wakeup request is posted to controller task, then return true, otherwise return false

put sleep control logics in controller init/deinit/enable/disable together

Use s_lp_cntl struct: replace bool-typed variable sleep_backup_en with s_lp_cntl.mac_bb_pd

Use s_lp_cntl struct: replace bool-typed variable s_btdm_allow_light_sleep with s_lp_cntl.no_light_sleep

Use s_lp_cntl struct: replace global variable btdm_lpclk_sel with s_lp_cntl.lpclk_sel

create semaphore s_wakeup_req_sem only when low power mode is required

Use s_lp_cntl struct: use s_lp_cntl.wakeup_timer_required to control the wakeup timer

use s_lp_stat to replace original state variable sleep_backup_done and s_pm_lock_acquired

one minor change for mac_bb_pd settings init: return error status if memeory allocation failed
2021-01-28 19:23:09 +08:00
Jiang Jiang Jian
4ab76197e9 Merge branch 'bugfix/bta_hf_client_sco_co_out_data' into 'master'
bugfix/if bta_hf_client_sco_co_out_data is called, it will crash when sco disconnected

Closes AUD-2714

See merge request espressif/esp-idf!12179
2021-01-28 18:02:25 +08:00
wangmengyang
9742aa6f05 component/bt: handle sleep wakeup event in the context of controller task instead of timer task 2021-01-28 16:04:21 +08:00
Jiang Jiang Jian
24f0bbded9 Merge branch 'bugfix/esp32s3beta2_ble_coexist_status_set' into 'master'
bugfix/esp32s3beta2_ble_coexist_status_set

See merge request espressif/esp-idf!12137
2021-01-27 21:37:51 +08:00
liaowenhao
e502893f18 bugfix/if bta_hf_client_sco_co_out_data is called, it will crash when sco disconnected 2021-01-27 19:46:13 +08:00
zwj
00fdbfcddc fix ble connection maximum latency is 499 2021-01-27 16:13:17 +08:00
zwj
b937485ad1 add ble examples default sdkconfig for esp32s3 2021-01-27 15:57:20 +08:00
zwj
bdafdbbf3d disable bluedroid congest error log print 2021-01-27 14:45:03 +08:00
zhiweijian
90d5413623 fix read multi char failed(GATT_27001) 2021-01-27 14:45:03 +08:00
zwj
081e474baf fix a2dp sink crash due to ble 5.0 code 2021-01-27 14:45:03 +08:00
wangmengyang
51be1af028 add coexist hook functions and fix bugs for coexistence 2021-01-27 06:37:04 +00:00
weitianhua
c347b0a937 Update bt_discovery demo and README
1. Use bt_app_gap_init function
2. Add Security Simple Pair doc
3. Update README

Update SPP demo

1. Add input module for bt_spp_initiator demo to show the security simple pair features
2. Update README of bt_spp_acceptor and bt_spp_initiator demo.

Format comment in esp_a2dp_api.h

Format comment in esp_avrc_api.h

Format comment in esp_spp_api.h

Fix bt_discovery build err

Update HFP API guide error

Remove BTA_AV_DEBUG

Remove Trailing Whitespace & End of Files
2021-01-27 14:17:12 +08:00
weitianhua
1404879bf4 Fix A2DP Underrun Issue 2021-01-25 17:44:11 +08:00
weitianhua
bfad85a372 Add init & deinit event for a2dp 2021-01-25 16:30:09 +08:00
Jiang Jiang Jian
f7c9f1afd7 Merge branch 'bugfix/avrc_set_player_value_cmd_event_unhandle' into 'master'
bugfix/fix unhandle RC vendor PDU when tg receive set_player_app_value cmd

Closes BT-711

See merge request espressif/esp-idf!11807
2021-01-20 23:39:57 +08:00
Jiang Jiang Jian
ffa29f8098 Merge branch 'feature/hfp_console' into 'master'
Feature/modify hfp console style by using esp console

Closes BT-1052

See merge request espressif/esp-idf!10973
2021-01-20 23:39:45 +08:00
Island
b7c404d3ff Merge branch 'bugfix/ble_mesh_proxy_client_net_resend' into 'master'
ble_mesh: stack: Fix proxy client may fail to resend msg

See merge request espressif/esp-idf!9882
2021-01-20 19:21:16 +08:00
Island
1f91e321f1 Merge branch 'bugfix/ble_mesh_node_set_name_status_check' into 'master'
ble_mesh: stack: Remove node set device name return status check

See merge request espressif/esp-idf!12071
2021-01-20 19:20:58 +08:00
Jiang Jiang Jian
d017c21131 Merge branch 'nimble/support_wl_DLE_esp32c3' into 'master'
NimBLE: Support whtelist remove, packet length set APIs

Closes BT-1271 and BT-1242

See merge request espressif/esp-idf!12069
2021-01-20 17:17:34 +08:00
lly
3ce6887aaf ble_mesh: stack: Remove node set device name return status check 2021-01-20 14:48:24 +08:00
Prasad Alatkar
f401e9716f NimBLE: Support APIs for whitelist remove and set packet length in controller 2021-01-20 11:58:33 +05:30
lly
690642be0e ble_mesh: stack: Use different random for each provisioning 2021-01-20 14:09:44 +08:00
lly
16f5438810 ble_mesh: stack: Fix proxy client may fail to resend msg 2021-01-20 06:04:31 +00:00
Jiang Jiang Jian
53e1a7f661 Merge branch 'nimble_esp32c3_support' into 'master'
ESP32C3 NimBLE support

See merge request espressif/esp-idf!12046
2021-01-20 13:57:38 +08:00
Prasad Alatkar
f959028486 NimBLE: Fix host flow control in NimBLE porting layer.
- Register `ble_hs_flow_acl_free` callback in NimBLE porting layer.
2021-01-19 17:03:00 +05:30
Chinmay Chhajed
62225cc47a NimBLE: BLE 5.0 related configuration changes
Added some changes like checking idf_target = BT_SOC_SUPPORT_5_0
and menuconfig option to enable/disable host based privacy.
2021-01-19 17:02:56 +05:30
lly
0edb86ddb0 ble_mesh: stack: Fix compile warning when log is disabled 2021-01-19 02:09:58 +00:00
lly
80bee1da1f ble_mesh: stack: Add prefix BLE_MESH_ for log related macros 2021-01-19 02:09:58 +00:00
Jiang Jiang Jian
f5e7504000 Merge branch 'nimble/update_nimble-1.3.0-idf' into 'master'
NimBLE: Update NimBLE to latest 1.3.0 release

See merge request espressif/esp-idf!9917
2021-01-18 20:29:10 +08:00
Island
c65a24063d Merge branch 'update/ble_mesh_set_hsl_states' into 'master'
ble_mesh: stack: Enable updating lighting hsl state

See merge request espressif/esp-idf!12025
2021-01-18 13:20:59 +08:00
lly
187fb9d959 ble_mesh: stack: Fix compile warning with BIT macro 2021-01-18 08:59:14 +08:00
lly
3aabf571a8 ble_mesh: stack: Update mesh max conn macro when using bluedroid 2021-01-18 00:54:11 +00:00
Prasad Alatkar
7252c99a14 BLE Mesh: Fix compilation for NimBLE-1.3.0 upgrade by typecasting adv data to void 2021-01-15 16:57:29 +00:00
Prasad Alatkar
8224aa69a2 NimBLE: Update NimBLE to latest 1.3.0 release 2021-01-15 16:57:29 +00:00
zwj
ea42d8e043 fix bluedroid deinit crash 2021-01-15 21:08:14 +08:00
lly
8aae9860ce ble_mesh: stack: Enable updating lighting hsl state 2021-01-15 20:27:43 +08:00
zwj
d624675087 fix connection param update timeout 2021-01-15 18:05:39 +08:00
zwj
ad09955b1f fix crash when creating aux open failed, fix GAP_22026 failed 2021-01-15 18:05:18 +08:00
zwj
273d2fd5ec fix multi-connection crash (smp-08003) 2021-01-15 18:05:04 +08:00
zhiweijian
e81104f377 fix add white list failed 2021-01-15 18:04:45 +08:00
zwj
61b1a4b7b8 fix bluedroid repair faild if the two most significant bits of public address is '01' 2021-01-15 18:04:27 +08:00
zhiweijian@espressif.com
d4619584d7 fix ble connect crash 2021-01-15 18:04:16 +08:00
zwj
1d1754e4b4 - fix congest return value
- fix system no rsp when doing disconnect
- fix no congest event when ssc do writing performance
2021-01-15 18:03:56 +08:00
zwj
0880c7bcf9 fix ble read multi char err when the number of handles is more than 10 2021-01-15 18:03:39 +08:00
zwj
4a719daa78 fix scan rsp length err 2021-01-15 18:03:27 +08:00
zwj
796a959fa5 fix vendor hci memory leak 2021-01-15 18:03:15 +08:00
zwj
7c1c669799 component/bt: add BLE v5.0 feature for bluedroid host 2021-01-15 17:55:12 +08:00
Island
1e73d90c29 Merge branch 'bugfix/bluedroid_avoid_same_bdaddr_conn' into 'master'
Bluedroid: Do not connect if peer BD_ADDR is same as own BD_ADDR.

See merge request espressif/esp-idf!11806
2021-01-14 14:47:21 +08:00
liaowenhao
6c0e3fe23c bugfix:unhandle event when tg receive set_player_app_value cmd 2021-01-08 20:58:35 +08:00
liaowenhao
08dc78412e fix double malloc for SCO link when bta_ag_sco_co_open is also called in bta_ag_rfc_open 2021-01-07 11:37:24 +00:00
liaowenhao
60e2eb8dfc bugfix/fixed the warning info always being printed when entering the cona command in msbc mode 2021-01-07 11:37:24 +00:00
lly
d0901c81f8 ble_mesh: stack: Fix using wrong | for OR between macros 2021-01-07 19:17:45 +08:00
lly
847e408a82 ble_mesh: stack: Fix Node ID adv with wrong timeout 2021-01-06 06:02:18 +00:00
Jiang Jiang Jian
eb9c2d584f Merge branch 'bugfix/fix_tx_issue_after_esp_restart' into 'master'
components/bt: Shutdown Bluetooth before esp_restart.

See merge request espressif/esp-idf!11698
2021-01-06 12:32:03 +08:00
Jiang Jiang Jian
b790a1866f Merge branch 'bugfix/btdm_blufi_send_custom_data_will_congested_after_connection_is_broken' into 'master'
component/bt: fix Blufi sends customer data will congested when connection is broken

See merge request espressif/esp-idf!11845
2021-01-06 12:29:20 +08:00
Chinmay Chhajed
e016b6b79b Bluedroid: Do not connect if peer BD_ADDR is same as own BD_ADDR. 2021-01-05 14:54:15 +05:30
Jiang Jiang Jian
e784469966 Merge branch 'bugfix/spp_data_send_delay' into 'master'
Add API to config QoS

See merge request espressif/esp-idf!9493
2021-01-05 10:32:51 +08:00
Bao Hong De
64d30fa6c4 Add API to config QoS 2021-01-05 10:32:47 +08:00
XieWenxiang
ba89eeabfa component/bt: fix Blufi sends customer data will congested when connection is broken 2020-12-31 14:45:23 +08:00
Angus Gratton
db4fb49432 esp_common: Fix issue with SPIRAM_ALLOW_BSS_SEG_EXTERNAL_MEMORY not visible on c3
Create a common symbol name to use from linker.lf fragments
2020-12-31 15:20:05 +11:00
Chinmay Chhajed
d73ebb570b Bluedroid: Fixes for some vulnerabilities.
This commit fixes 'Impersonation in Passkey entry protocol'
(CVE-2020-26558) and suggests fixes for other vulnerabilites like
'Impersonation in the Pin Pairing Protocol' (CVE-2020-26555) and
'Authentication of the LE Legacy Pairing Protocol'

CVE-2020-26558 can be easily implemented if the peer device can
impersonate our public key. This commit adds a check by comparing our
and received public key and returns failed pairing if keys are same.

This commit also adds comments suggesting to use secure connection when
supported by all devices.
2020-12-24 10:52:12 +00:00
Jiang Jiang Jian
52e66cb143 Merge branch 'bugfix/fix_spp_vfs_dynamic_memory_bugs' into 'master'
component_bt/fix spp vfs demo crash when use dynamic memory

See merge request espressif/esp-idf!11502
2020-12-23 12:36:44 +08:00
baohongde
3b0fc48ab4 components/bt: Shutdown Bluetooth before esp_restart. 2020-12-21 20:08:10 +08:00
lly
ac93a38990 ble_mesh: stack: Support reporting normal ble adv packets 2020-12-21 09:08:25 +00:00
lly
a6ebe48e6e ble_mesh: stack: Add a btc file for ble coex functions
Previously if starting/stopping BLE advertising when BLE Mesh
is enabled, the corresponding events will be notified through
the callback registered by esp_ble_mesh_register_prov_callback().

With this commit, the func esp_ble_mesh_register_ble_callback()
needs to be invoked for resgitering the callback used for BLE
coexistence related functionalities (i.e. ADV/SCAN).
2020-12-21 09:08:25 +00:00
lly
1bb3f693d5 ble_mesh: stack: Move ble scan funcitons to a single file 2020-12-21 09:08:25 +00:00
lly
9be0120d94 ble_mesh: stack: Optimize handling received mesh adv packets 2020-12-21 09:08:25 +00:00
gengyuchao
247484c454 bugfix: clear the timer after remote reject when respond the parameters update 2020-12-17 22:19:44 +08:00
wangcheng
386a8e37f1 components/bt:fix exl200, add btdm_disable_adv_delay, fix RPA addr update error. 2020-12-17 10:57:54 +08:00
wangcheng
cc7dbc6177 components/bt: Fixed the problem of early release of pointer(p_ccb) in funcion 2020-12-17 10:54:56 +08:00
Wei Tian Hua
6b7c878581 Free ACL RX Buf in EM when disconnection 2020-12-16 18:02:39 +08:00
liqigan
478cef9b75 fix spp vfs demo crash when use dynamic memory 2020-12-09 19:46:43 +08:00
lly
fb531815b0 ble_mesh: stack: Move bt_mesh_rand to mesh_common.c 2020-12-08 15:13:04 +08:00
lly
19c3f38b36 ble_mesh: stack: Remove useless BT_DBG_ENABLED in a few files 2020-12-08 15:13:04 +08:00
lly
b77563abb0 ble_mesh: Replace zephyr integer types with C99 types [Zephyr] 2020-12-08 15:13:04 +08:00
lly
162e11cff3 ble_mesh: stack: Update ARRAY_SIZE definition 2020-12-08 15:13:04 +08:00
Island
4f082154e0 Merge branch 'feat/ble_mesh_multiple_nvs_namespace' into 'master'
ble_mesh: stack: Provisioner supports multiple nvs namespaces

Closes BLEMESH-260

See merge request espressif/esp-idf!11355
2020-12-07 14:43:04 +08:00
lly
a90e3cdf95 ble_mesh: stack: Provisioner supports multiple nvs namespaces
Now Provisioner can use different NVS namespaces to store
different instances of mesh information, for example, for
different user accounts.
2020-12-04 20:31:25 +08:00
Sachin Parekh
be5563207d esp32: Provision to redirect .bss to external ram through linker fragments
Include external ram section in the linker template to process it
through linker script generation mechanism. This enables redirection of .bss section to external memory using linker fragments

libnet80211, libpp, libbt, liblwip: Redirect .bss through fragments
2020-12-04 06:32:38 +00:00
xiewenxiang
945606b658 component/bt: support BLE Read Attribute value by UUID 2020-12-02 20:04:36 +08:00
xiewenxiang
7e5e0ba7de component/bt: refactor ble random address setting 2020-12-02 09:08:31 +08:00
XieWenxiang
e840191a0c component/bt: support BLE Application Layer Encryption key size check 2020-12-02 09:08:03 +08:00
XieWenxiang
366b036ba5 component/bt: support BLE Authorization 2020-12-02 09:07:24 +08:00
xiewenxiang
3d8eb26fe1 component/bt: fix incorrect encryption flag setting 2020-12-02 09:06:44 +08:00
Artem Godlevskyi
3caa9699ae Added missing MYNEWT_VAL_BLE_L2CAP_COC_MPS definition
Signed-off-by: Prasad Alatkar <prasad.alatkar@espressif.com>

Merges https://github.com/espressif/esp-idf/pull/5825
2020-11-27 11:50:03 +00:00
Prasad Alatkar
922a994896 NimBLE: Fix misc coverity issues in NimBLE host
- NimBLE NVS : Additional check to account for NVS operation failure
- NimBLE host: Fix minor bug in ble_eddystone_set_adv_data_gen
- NimBLE host: remove recursive call, upstream PR: https://github.com/apache/mynewt-nimble/pull/857
2020-11-27 11:50:03 +00:00
Jiang Jiang Jian
079247b42a Merge branch 'bugfix/blufi_config_potential_double_free' into 'master'
Bugfix/blufi config potential double free

Closes BCI-249, BCI-241, BCI-244, and BT-1174

See merge request espressif/esp-idf!9980
2020-11-27 13:44:37 +08:00
Jiang Jiang Jian
4985310b29 Merge branch 'bugfix/fix_crash_of_divide_zero' into 'master'
Fix crash caused by dividing zero

Closes AUD-2450

See merge request espressif/esp-idf!11100
2020-11-27 12:01:13 +08:00
lly
992ceca71b ble_mesh: stack: Need uuid when adding device for provisioning 2020-11-25 20:51:23 +08:00
wangcheng
d1bf93e055 component/bt: Add a macro to control the compilation of blufi. 2020-11-24 10:43:18 +08:00
wangcheng
714d88e426 component/bt: Fix a potential double free error. 2020-11-24 10:22:40 +08:00
wangcheng
709ad66d44 blufi: fix an error caused by incorrect conn_id parameters. 2020-11-24 10:22:32 +08:00
lly
db4b87a771 ble_mesh: stack: Provisioner supports receiving heartbeat 2020-11-23 01:28:28 +00:00
weitianhua
56f0978caa Add protection for interval_min when it comes to zero 2020-11-19 11:05:40 +08:00
lly
2e13e618b5 ble_mesh: stack: Update connection interval to 15ms 2020-11-17 11:58:23 +00:00
lly
6169636769 ble_mesh: stack: Update connection parameters used by Central 2020-11-17 11:58:23 +00:00
Angus Gratton
66fb5a29bb Whitespace: Automated whitespace fixes (large commit)
Apply the pre-commit hook whitespace fixes to all files in the repo.

(Line endings, blank lines at end of file, trailing whitespace)
2020-11-11 07:36:35 +00:00
Angus Gratton
e82eac4354 cmake: Apply cmakelint fixes 2020-11-11 07:36:35 +00:00