Hi Mark,
quoted
quoted
The MediaTek chip support vendor specific HCI command(0xfc1a) to
change the public address. Add hdev->set_bdaddr handler for MediaTek
Chip.
Signed-off-by: mark-yw.chen <redacted>
---
drivers/bluetooth/btusb.c | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)
diff --git a/drivers/bluetooth/btusb.c b/drivers/bluetooth/btusb.c
index 60d2fce59a71..41e7c9f28d82 100644
--- a/drivers/bluetooth/btusb.c
+++ b/drivers/bluetooth/btusb.c
@@ -2200,6 +2200,23 @@ struct btmtk_section_map { };
} __packed;
+static int btusb_set_bdaddr_mtk(struct hci_dev *hdev, const bdaddr_t
+*bdaddr) {
+ struct sk_buff *skb;
+ long ret;
+
+ skb = __hci_cmd_sync(hdev, 0xfc1a, sizeof(bdaddr), bdaddr,
HCI_INIT_TIMEOUT);
quoted
+ if (IS_ERR(skb)) {
+ ret = PTR_ERR(skb);
+ bt_dev_err(hdev, "changing Mediatek device address failed
(%ld)",
quoted
+ ret);
+ return ret;
+ }
+ kfree_skb(skb);
+
+ return 0;
+}
+
this is not a permanent change, correct? Meaning a power cycle will bring back
the original BD_ADDR?
Yes, it's not a permanent change.
After doing a power cycle or Mediatek specific Bluetooth reset, Mediatek Chips will bring back the original BD_ADDRESS.
ok, good. Then please re-submit against latest bluetooth-next tree. Unfortunately current patch doesn’t apply anymore.
Regards
Marcel