41 lines
1.8 KiB
Diff
41 lines
1.8 KiB
Diff
From bf9a555f96cceb9ce49344e5055c2afa479df21d Mon Sep 17 00:00:00 2001
|
|
From: Peter Cai <peter@typeblog.net>
|
|
Date: Fri, 26 Aug 2022 11:23:30 +0200
|
|
Subject: [PATCH] gd: hci: Ignore unexpected status events
|
|
|
|
For some reason, on some old devices, the controller will report a
|
|
remote to support SNIFF_SUBRATING even when it does not. Just ignore the
|
|
error here (the status event comes from the failure response).
|
|
|
|
Change-Id: Ifb9a65fd77f21d15a8dc1ced9240194d38218ef6
|
|
---
|
|
system/gd/hci/hci_layer.cc | 15 +++++++--------
|
|
1 file changed, 7 insertions(+), 8 deletions(-)
|
|
|
|
diff --git a/system/gd/hci/hci_layer.cc b/system/gd/hci/hci_layer.cc
|
|
index 57d7e55fff..b5a9d065be 100644
|
|
--- a/system/gd/hci/hci_layer.cc
|
|
+++ b/system/gd/hci/hci_layer.cc
|
|
@@ -195,14 +195,13 @@ struct HciLayer::impl {
|
|
EventView::Create(PacketView<kLittleEndian>(std::make_shared<std::vector<uint8_t>>(std::vector<uint8_t>()))));
|
|
command_queue_.front().GetCallback<CommandCompleteView>()->Invoke(move(command_complete_view));
|
|
} else {
|
|
- ASSERT_LOG(
|
|
- command_queue_.front().waiting_for_status_ == is_status,
|
|
- "0x%02hx (%s) was not expecting %s event",
|
|
- op_code,
|
|
- OpCodeText(op_code).c_str(),
|
|
- logging_id.c_str());
|
|
-
|
|
- command_queue_.front().GetCallback<TResponse>()->Invoke(move(response_view));
|
|
+ if (command_queue_.front().waiting_for_status_ == is_status) {
|
|
+ command_queue_.front().GetCallback<TResponse>()->Invoke(move(response_view));
|
|
+ } else {
|
|
+ CommandCompleteView command_complete_view = CommandCompleteView::Create(
|
|
+ EventView::Create(PacketView<kLittleEndian>(std::make_shared<std::vector<uint8_t>>(std::vector<uint8_t>()))));
|
|
+ command_queue_.front().GetCallback<CommandCompleteView>()->Invoke(move(command_complete_view));
|
|
+ }
|
|
}
|
|
|
|
command_queue_.pop_front();
|