From 0082e027d5ae3f45a3a613ed720c31e35f61d0eb Mon Sep 17 00:00:00 2001 From: Andre Eisenbach Date: Wed, 3 Apr 2013 13:56:05 -0700 Subject: [PATCH] Fix LE buffer size for 0 length buffers If the local chip reports 0 LE data buffers and 0 LE ACL data package length, then the default ACL buffer length as returned byt the Read_Buffer_Size command is to be used instead. Change-Id: I953fabe426a98cc1b005d3b46c3e7f227c23a686 --- stack/btm/btm_devctl.c | 3 +++ stack/l2cap/l2c_ble.c | 2 ++ 2 files changed, 5 insertions(+) diff --git a/stack/btm/btm_devctl.c b/stack/btm/btm_devctl.c index e893edf09..8e883d7a0 100644 --- a/stack/btm/btm_devctl.c +++ b/stack/btm/btm_devctl.c @@ -784,6 +784,9 @@ void btm_read_ble_buf_size_complete (UINT8 *p, UINT16 evt_len) STREAM_TO_UINT16 (btu_cb.hcit_ble_acl_data_size, p); STREAM_TO_UINT8 (lm_num_le_bufs, p); + if (btu_cb.hcit_ble_acl_data_size == 0) + btu_cb.hcit_ble_acl_data_size = btu_cb.hcit_acl_data_size; + btu_cb.hcit_ble_acl_pkt_size = btu_cb.hcit_ble_acl_data_size + HCI_DATA_PREAMBLE_SIZE; l2c_link_processs_ble_num_bufs (lm_num_le_bufs); diff --git a/stack/l2cap/l2c_ble.c b/stack/l2cap/l2c_ble.c index 0a296c88a..e32358755 100644 --- a/stack/l2cap/l2c_ble.c +++ b/stack/l2cap/l2c_ble.c @@ -622,6 +622,8 @@ 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; l2cb.num_lm_ble_bufs = l2cb.controller_le_xmit_window = num_lm_ble_bufs; } -- 2.11.0