Thread (3 messages) flat view 3 messages, 2 authors, 2021-08-31

Re: [PATCH 1/2] Bluetooth: btusb: Support public address configuration for MediaTek Chip.

From: Marcel Holtmann <marcel@holtmann.org>
Date: 2021-08-30 15:04:03
Also in: linux-mediatek, lkml

Hi Mark,
quoted hunk
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);
+	if (IS_ERR(skb)) {
+		ret = PTR_ERR(skb);
+		bt_dev_err(hdev, "changing Mediatek device address failed (%ld)",
+			   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?

Regards

Marcel
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help