]> granicus.if.org Git - esp-idf/commitdiff
component/bt: bugfix for erroneous data reporting always enabled
authorwangmengyang <wangmengyang@espressif.com>
Thu, 5 Jul 2018 07:22:44 +0000 (15:22 +0800)
committerwangmengyang <wangmengyang@espressif.com>
Mon, 9 Jul 2018 05:45:55 +0000 (13:45 +0800)
components/bt/bluedroid/device/controller.c
components/bt/bluedroid/hci/hci_packet_factory.c
components/bt/bluedroid/hci/include/hci/hci_packet_factory.h
components/bt/lib

index a748f0f530f7e423966be3c4ccb58026ba741a8e..f0963b4695d75ef4c2e94a4dea1a10a691b68a3e 100644 (file)
@@ -258,6 +258,9 @@ static void start_up(void)
 #if (BTM_SCO_HCI_INCLUDED == TRUE)
     response = AWAIT_COMMAND(packet_factory->make_write_sync_flow_control_enable(1));
     packet_parser->parse_generic_command_complete(response);
+
+    response = AWAIT_COMMAND(packet_factory->make_write_default_erroneous_data_report(1));
+    packet_parser->parse_generic_command_complete(response);
 #endif
     readable = true;
     // return future_new_immediate(FUTURE_SUCCESS);
index ae204caf4754e8e35b3041ea7cbdea416bddf3ee..45f3f687fc02424c7b07754f511c28891fc70392 100644 (file)
@@ -194,6 +194,16 @@ static BT_HDR *make_write_sync_flow_control_enable(uint8_t enable)
     UINT8_TO_STREAM(stream, enable);
     return packet;
 }
+
+static BT_HDR *make_write_default_erroneous_data_report(uint8_t enable)
+{
+    uint8_t *stream;
+    const uint8_t parameter_size = 1;
+    BT_HDR *packet = make_command(HCI_WRITE_ERRONEOUS_DATA_RPT, parameter_size, &stream);
+
+    UINT8_TO_STREAM(stream, enable);
+    return packet;
+}
 // Internal functions
 
 static BT_HDR *make_command_no_params(uint16_t opcode)
@@ -248,7 +258,8 @@ static const hci_packet_factory_t interface = {
     make_ble_read_suggested_default_data_length,
     make_ble_write_suggested_default_data_length,
     make_ble_set_event_mask,
-    make_write_sync_flow_control_enable
+    make_write_sync_flow_control_enable,
+    make_write_default_erroneous_data_report,
 };
 
 const hci_packet_factory_t *hci_packet_factory_get_interface()
index e48c4be437c9b05bfffebd05d5605e8701f4377e..21bd2c9a62f3b3645856c3760830b38a2b738efe 100644 (file)
@@ -44,6 +44,7 @@ typedef struct {
     BT_HDR *(*make_ble_write_suggested_default_data_length)(uint16_t SuggestedMaxTxOctets, uint16_t SuggestedMaxTxTime);
     BT_HDR *(*make_ble_set_event_mask)(const bt_event_mask_t *event_mask);
     BT_HDR *(*make_write_sync_flow_control_enable)(uint8_t enable);
+    BT_HDR *(*make_write_default_erroneous_data_report)(uint8_t enable);
 } hci_packet_factory_t;
 
 const hci_packet_factory_t *hci_packet_factory_get_interface();
index 69f3de0011e4d1ae278af34f73e28d98c551304a..e554aab8844208a3660f7c38b189834b0d463592 160000 (submodule)
@@ -1 +1 @@
-Subproject commit 69f3de0011e4d1ae278af34f73e28d98c551304a
+Subproject commit e554aab8844208a3660f7c38b189834b0d463592