summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndre Eisenbach <andre@broadcom.com>2013-04-24 16:02:04 -0700
committerMatthew Xie <mattx@google.com>2013-04-25 13:01:22 -0700
commit12c3f496c3612472a22cbb0afd89812b154b4186 (patch)
tree71152e3fbd76f50470ef1670af2152e7734a3dff
parentf8f30c2cecf221b2c3983b72d5a849d799c39dd7 (diff)
downloadbluedroid-12c3f496c3612472a22cbb0afd89812b154b4186.tar.gz
LE: Fix shared ACL buffer allocation
Allocate a static amount of LE buffers for chipsets that do not provide separate ACL buffers for LE and BR/EDR. Bug: 8714387 Change-Id: I74e954c0824ddfd89b50c14f6848db787f9b9bff
-rw-r--r--include/bt_target.h6
-rw-r--r--stack/l2cap/l2c_ble.c6
2 files changed, 11 insertions, 1 deletions
diff --git a/include/bt_target.h b/include/bt_target.h
index dd1b19e..0ce6971 100644
--- a/include/bt_target.h
+++ b/include/bt_target.h
@@ -550,6 +550,12 @@
#define L2CAP_FCR_RX_POOL_ID HCI_ACL_POOL_ID
#endif
+/* Number of ACL buffers to assign to LE
+ if the HCI buffer pool is shared with BR/EDR */
+#ifndef L2C_DEF_NUM_BLE_BUF_SHARED
+#define L2C_DEF_NUM_BLE_BUF_SHARED 1
+#endif
+
/* Used by BTM when it sends HCI commands to the controller. */
#ifndef BTM_CMD_POOL_ID
#define BTM_CMD_POOL_ID GKI_POOL_ID_2
diff --git a/stack/l2cap/l2c_ble.c b/stack/l2cap/l2c_ble.c
index e323587..75053bd 100644
--- a/stack/l2cap/l2c_ble.c
+++ b/stack/l2cap/l2c_ble.c
@@ -623,7 +623,11 @@ BOOLEAN l2cble_create_conn (tL2C_LCB *p_lcb)
void l2c_link_processs_ble_num_bufs (UINT16 num_lm_ble_bufs)
{
if (num_lm_ble_bufs == 0)
- num_lm_ble_bufs = l2cb.num_lm_acl_bufs;
+ {
+ num_lm_ble_bufs = L2C_DEF_NUM_BLE_BUF_SHARED;
+ l2cb.num_lm_acl_bufs -= L2C_DEF_NUM_BLE_BUF_SHARED;
+ }
+
l2cb.num_lm_ble_bufs = l2cb.controller_le_xmit_window = num_lm_ble_bufs;
}