Skip to content

Commit

Permalink
Merge branch 'bugfix/espat-1972' into 'master'
Browse files Browse the repository at this point in the history
bugfix(ESPAT-1972): Fixed ble connection timeout issue

See merge request application/esp-at!1544
  • Loading branch information
xcguang committed Mar 29, 2024
2 parents 21b2ad0 + e534a8b commit 20065cd
Show file tree
Hide file tree
Showing 8 changed files with 173 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
From 7485572ef7e5b076d90d29f9335dcb726ef3714f Mon Sep 17 00:00:00 2001
From: xiewenxiang <xiewenxiang@espressif.com>
Date: Fri, 29 Mar 2024 10:41:25 +0800
Subject: [PATCH] modify bluedroid conn timeout

---
components/bt/host/bluedroid/stack/l2cap/l2c_ble.c | 11 +++++++----
1 file changed, 7 insertions(+), 4 deletions(-)

diff --git a/components/bt/host/bluedroid/stack/l2cap/l2c_ble.c b/components/bt/host/bluedroid/stack/l2cap/l2c_ble.c
index 4e6c8534ec..fa7a877491 100644
--- a/components/bt/host/bluedroid/stack/l2cap/l2c_ble.c
+++ b/components/bt/host/bluedroid/stack/l2cap/l2c_ble.c
@@ -950,16 +950,19 @@ BOOLEAN l2cble_init_direct_conn (tL2C_LCB *p_lcb)
L2CAP_TRACE_ERROR("initate direct connection fail, topology limitation");
return FALSE;
}
- uint32_t link_timeout = L2CAP_BLE_LINK_CONNECT_TOUT;
+
+ extern int32_t bluedroid_conn_wait_time;
+
+ uint32_t link_timeout = bluedroid_conn_wait_time;
if(GATTC_CONNECT_RETRY_COUNT) {
if(!p_lcb->retry_create_con) {
p_lcb->start_time_s = (esp_system_get_time()/1000);
}
uint32_t current_time = (esp_system_get_time()/1000);
- link_timeout = (L2CAP_BLE_LINK_CONNECT_TOUT*1000 - (current_time - p_lcb->start_time_s))/1000;
+ link_timeout = (bluedroid_conn_wait_time*1000 - (current_time - p_lcb->start_time_s))/1000;

- if(link_timeout == 0 || link_timeout > L2CAP_BLE_LINK_CONNECT_TOUT) {
- link_timeout = L2CAP_BLE_LINK_CONNECT_TOUT;
+ if(link_timeout == 0 || link_timeout > bluedroid_conn_wait_time) {
+ link_timeout = bluedroid_conn_wait_time;
}
}

--
2.25.1
4 changes: 4 additions & 0 deletions module_config/module_esp32-d2wd/patch/patch_list.ini
Original file line number Diff line number Diff line change
Expand Up @@ -11,3 +11,7 @@
[support_ext_partition.patch]
path = esp-idf
note = "[IDF-9560] Support to use partition table outside of the project directory"

[modify_bluedroid_conn_timeout.patch]
path = esp-idf
note = "[ESPAT-1972]Support modify ble connection timeout period"
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
From 7485572ef7e5b076d90d29f9335dcb726ef3714f Mon Sep 17 00:00:00 2001
From: xiewenxiang <xiewenxiang@espressif.com>
Date: Fri, 29 Mar 2024 10:41:25 +0800
Subject: [PATCH] modify bluedroid conn timeout

---
components/bt/host/bluedroid/stack/l2cap/l2c_ble.c | 11 +++++++----
1 file changed, 7 insertions(+), 4 deletions(-)

diff --git a/components/bt/host/bluedroid/stack/l2cap/l2c_ble.c b/components/bt/host/bluedroid/stack/l2cap/l2c_ble.c
index 4e6c8534ec..fa7a877491 100644
--- a/components/bt/host/bluedroid/stack/l2cap/l2c_ble.c
+++ b/components/bt/host/bluedroid/stack/l2cap/l2c_ble.c
@@ -950,16 +950,19 @@ BOOLEAN l2cble_init_direct_conn (tL2C_LCB *p_lcb)
L2CAP_TRACE_ERROR("initate direct connection fail, topology limitation");
return FALSE;
}
- uint32_t link_timeout = L2CAP_BLE_LINK_CONNECT_TOUT;
+
+ extern int32_t bluedroid_conn_wait_time;
+
+ uint32_t link_timeout = bluedroid_conn_wait_time;
if(GATTC_CONNECT_RETRY_COUNT) {
if(!p_lcb->retry_create_con) {
p_lcb->start_time_s = (esp_system_get_time()/1000);
}
uint32_t current_time = (esp_system_get_time()/1000);
- link_timeout = (L2CAP_BLE_LINK_CONNECT_TOUT*1000 - (current_time - p_lcb->start_time_s))/1000;
+ link_timeout = (bluedroid_conn_wait_time*1000 - (current_time - p_lcb->start_time_s))/1000;

- if(link_timeout == 0 || link_timeout > L2CAP_BLE_LINK_CONNECT_TOUT) {
- link_timeout = L2CAP_BLE_LINK_CONNECT_TOUT;
+ if(link_timeout == 0 || link_timeout > bluedroid_conn_wait_time) {
+ link_timeout = bluedroid_conn_wait_time;
}
}

--
2.25.1
4 changes: 4 additions & 0 deletions module_config/module_esp32-sdio/patch/patch_list.ini
Original file line number Diff line number Diff line change
Expand Up @@ -11,3 +11,7 @@
[support_ext_partition.patch]
path = esp-idf
note = "[IDF-9560] Support to use partition table outside of the project directory"

[modify_bluedroid_conn_timeout.patch]
path = esp-idf
note = "[ESPAT-1972]Support modify ble connection timeout period"
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
From 7485572ef7e5b076d90d29f9335dcb726ef3714f Mon Sep 17 00:00:00 2001
From: xiewenxiang <xiewenxiang@espressif.com>
Date: Fri, 29 Mar 2024 10:41:25 +0800
Subject: [PATCH] modify bluedroid conn timeout

---
components/bt/host/bluedroid/stack/l2cap/l2c_ble.c | 11 +++++++----
1 file changed, 7 insertions(+), 4 deletions(-)

diff --git a/components/bt/host/bluedroid/stack/l2cap/l2c_ble.c b/components/bt/host/bluedroid/stack/l2cap/l2c_ble.c
index 4e6c8534ec..fa7a877491 100644
--- a/components/bt/host/bluedroid/stack/l2cap/l2c_ble.c
+++ b/components/bt/host/bluedroid/stack/l2cap/l2c_ble.c
@@ -950,16 +950,19 @@ BOOLEAN l2cble_init_direct_conn (tL2C_LCB *p_lcb)
L2CAP_TRACE_ERROR("initate direct connection fail, topology limitation");
return FALSE;
}
- uint32_t link_timeout = L2CAP_BLE_LINK_CONNECT_TOUT;
+
+ extern int32_t bluedroid_conn_wait_time;
+
+ uint32_t link_timeout = bluedroid_conn_wait_time;
if(GATTC_CONNECT_RETRY_COUNT) {
if(!p_lcb->retry_create_con) {
p_lcb->start_time_s = (esp_system_get_time()/1000);
}
uint32_t current_time = (esp_system_get_time()/1000);
- link_timeout = (L2CAP_BLE_LINK_CONNECT_TOUT*1000 - (current_time - p_lcb->start_time_s))/1000;
+ link_timeout = (bluedroid_conn_wait_time*1000 - (current_time - p_lcb->start_time_s))/1000;

- if(link_timeout == 0 || link_timeout > L2CAP_BLE_LINK_CONNECT_TOUT) {
- link_timeout = L2CAP_BLE_LINK_CONNECT_TOUT;
+ if(link_timeout == 0 || link_timeout > bluedroid_conn_wait_time) {
+ link_timeout = bluedroid_conn_wait_time;
}
}

--
2.25.1
4 changes: 4 additions & 0 deletions module_config/module_esp32_default/patch/patch_list.ini
Original file line number Diff line number Diff line change
Expand Up @@ -11,3 +11,7 @@
[support_ext_partition.patch]
path = esp-idf
note = "[IDF-9560] Support to use partition table outside of the project directory"

[modify_bluedroid_conn_timeout.patch]
path = esp-idf
note = "[ESPAT-1972]Support modify ble connection timeout period"
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
From 7485572ef7e5b076d90d29f9335dcb726ef3714f Mon Sep 17 00:00:00 2001
From: xiewenxiang <xiewenxiang@espressif.com>
Date: Fri, 29 Mar 2024 10:41:25 +0800
Subject: [PATCH] modify bluedroid conn timeout

---
components/bt/host/bluedroid/stack/l2cap/l2c_ble.c | 11 +++++++----
1 file changed, 7 insertions(+), 4 deletions(-)

diff --git a/components/bt/host/bluedroid/stack/l2cap/l2c_ble.c b/components/bt/host/bluedroid/stack/l2cap/l2c_ble.c
index 4e6c8534ec..fa7a877491 100644
--- a/components/bt/host/bluedroid/stack/l2cap/l2c_ble.c
+++ b/components/bt/host/bluedroid/stack/l2cap/l2c_ble.c
@@ -950,16 +950,19 @@ BOOLEAN l2cble_init_direct_conn (tL2C_LCB *p_lcb)
L2CAP_TRACE_ERROR("initate direct connection fail, topology limitation");
return FALSE;
}
- uint32_t link_timeout = L2CAP_BLE_LINK_CONNECT_TOUT;
+
+ extern int32_t bluedroid_conn_wait_time;
+
+ uint32_t link_timeout = bluedroid_conn_wait_time;
if(GATTC_CONNECT_RETRY_COUNT) {
if(!p_lcb->retry_create_con) {
p_lcb->start_time_s = (esp_system_get_time()/1000);
}
uint32_t current_time = (esp_system_get_time()/1000);
- link_timeout = (L2CAP_BLE_LINK_CONNECT_TOUT*1000 - (current_time - p_lcb->start_time_s))/1000;
+ link_timeout = (bluedroid_conn_wait_time*1000 - (current_time - p_lcb->start_time_s))/1000;

- if(link_timeout == 0 || link_timeout > L2CAP_BLE_LINK_CONNECT_TOUT) {
- link_timeout = L2CAP_BLE_LINK_CONNECT_TOUT;
+ if(link_timeout == 0 || link_timeout > bluedroid_conn_wait_time) {
+ link_timeout = bluedroid_conn_wait_time;
}
}


--
2.25.1
4 changes: 4 additions & 0 deletions module_config/module_wrover-32/patch/patch_list.ini
Original file line number Diff line number Diff line change
Expand Up @@ -11,3 +11,7 @@
[support_ext_partition.patch]
path = esp-idf
note = "[IDF-9560] Support to use partition table outside of the project directory"

[modify_bluedroid_conn_timeout.patch]
path = esp-idf
note = "[ESPAT-1972]Support modify ble connection timeout period"

0 comments on commit 20065cd

Please sign in to comment.