blob: a603dc051cb63a61d77482552f4219e8d97efa19 [file] [log] [blame]
From 8e341c7c3c847fd3255c60cd5369db42b3323928 Mon Sep 17 00:00:00 2001
From: Miao-chen Chou <mcchou@chromium.org>
Date: Fri, 14 Jan 2022 16:44:31 -0800
Subject: [PATCH] CHROMIUM: bluetooth: disable MSFT HCI extension on RTL8822
and RTL8852
The firmware implementation of RTL8822 and RTL8852 does support the
advertisement monitoring feature of Microsoft HCI extension. However,
there is only one tracking device per condition, and that does not serve
Nearby and Fast Pair service well where there can be multiple devices
matching the condition in common use cases. And can not be addressed by
firmware update, since there is hardware limitation.
Given advertisement monitoring is the only feature adopted by Chrome OS,
we disable the use of Microsoft HCI extension as a whole.
BUG=b:200993792
TEST=Verified that "controller-patterns" does not show up in property
SupportedMonitorTypes of org.bluez.AdvertisementMonitorManager1
interface
Change-Id: I08ac34b11bd701459122e470b0315820bb45b415
Signed-off-by: Miao-chen Chou <mcchou@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/kernel/+/3394224
Reviewed-by: Archie Pusaka <apusaka@chromium.org>
---
drivers/bluetooth/btrtl.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/drivers/bluetooth/btrtl.c b/drivers/bluetooth/btrtl.c
--- a/drivers/bluetooth/btrtl.c
+++ b/drivers/bluetooth/btrtl.c
@@ -690,8 +690,9 @@ struct btrtl_device_info *btrtl_initialize(struct hci_dev *hdev,
}
}
- /* The following chips supports the Microsoft vendor extension,
- * therefore set the corresponding VsMsftOpCode.
+ /* Both RTL8822B and RTL8852A support only one tracking device
+ * per condition in firmware, the use of MSFT HCI extension is
+ * eliminated. See b/200993792 for more details.
*/
if (btrtl_dev->ic_info->has_msft_ext)
hci_set_msft_opcode(hdev, 0xFCF0);
--
2.35.0.rc0.227.g00780c9af4-goog