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

- From: Mark-YW Chen (陳揚文) \<hidden\>
- Date: 2021-08-31 09:42:44 
- List: linux-bluetooth
- Page: https://ratatoskr.run/linux-bluetooth/2021/08/1493111
- Thread: https://ratatoskr.run/linux-bluetooth/2021/08/1492284/t.md

```text
Hi Marcel,

> > 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?
> 

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.

With best regards,
Mark
```
