OSDN Git Service

LE: Fix shared ACL buffer allocation
authorAndre Eisenbach <andre@broadcom.com>
Wed, 24 Apr 2013 23:02:04 +0000 (16:02 -0700)
committerMatthew Xie <mattx@google.com>
Thu, 25 Apr 2013 20:01:22 +0000 (13:01 -0700)
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

include/bt_target.h
stack/l2cap/l2c_ble.c

index dd1b19e..0ce6971 100644 (file)
 #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
index e323587..75053bd 100644 (file)
@@ -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;
 }