Bluetooth: add support to ignore HCI reset timeout

Signed-off-by: hmz007 <hmz007@gmail.com>
master
hmz007 10 months ago
parent 83bfb99fd6
commit 1d94edb241

@ -23,6 +23,7 @@
#include "os/alarm.h"
#include "os/metrics.h"
#include "os/queue.h"
#include "os/system_properties.h"
#include "packet/packet_builder.h"
#include "storage/storage_module.h"
@ -230,6 +231,11 @@ struct HciLayer::impl {
}
void on_hci_timeout(OpCode op_code) {
if (op_code == OpCode::RESET && ignore_reset_timeout_) {
LOG_WARN("Ignoring timeout for HCI Reset");
return;
}
common::StopWatch::DumpStopWatchLog();
LOG_ERROR("Timed out waiting for 0x%02hx (%s)", op_code, OpCodeText(op_code).c_str());
// TODO: LogMetricHciTimeoutEvent(static_cast<uint32_t>(op_code));
@ -432,6 +438,7 @@ struct HciLayer::impl {
uint8_t command_credits_{1}; // Send reset first
Alarm* hci_timeout_alarm_{nullptr};
Alarm* hci_abort_alarm_{nullptr};
const bool ignore_reset_timeout_ = !os::GetSystemPropertyBool("persist.bluetooth.hci.reset_timeout", true);
// Acl packets
BidiQueue<AclView, AclBuilder> acl_queue_{3 /* TODO: Set queue depth */};

Loading…
Cancel
Save