[PATCH 5/7] Bluetooth: hci_aml: take the address from the firmware description

From: christian . koever-draxl

Date: Sun Oct 25 2026 - 15:37:27 EST


From: Christian Stefan Kövér-Draxl <ckoever@xxxxxxxxxx>

When the controller reports the Amlogic default address the driver
marks it invalid, which leaves userspace to configure one before the
adapter can be used. The controller does not keep an address across a
power cycle, so there is nowhere else a stable one can come from.

Set HCI_QUIRK_USE_BDADDR_PROPERTY as well, so that a local-bd-address
property, typically filled in by the bootloader, is used when present.

Signed-off-by: Christian Stefan Kövér-Draxl <ckoever@xxxxxxxxxx>
---
drivers/bluetooth/hci_aml.c | 4 ++++
1 file changed, 4 insertions(+)

diff --git a/drivers/bluetooth/hci_aml.c b/drivers/bluetooth/hci_aml.c
index 8561618867e8..d1b83f7bd388 100644
--- a/drivers/bluetooth/hci_aml.c
+++ b/drivers/bluetooth/hci_aml.c
@@ -528,6 +528,10 @@ static int aml_check_bdaddr(struct hci_dev *hdev)
if (!bacmp(&paddr->bdaddr, AML_BDADDR_DEFAULT)) {
bt_dev_info(hdev, "amlbt using default bdaddr (%pM)", &paddr->bdaddr);
hci_set_quirk(hdev, HCI_QUIRK_INVALID_BDADDR);
+ /* Nothing is kept across a power cycle either, so let the
+ * firmware description provide an address.
+ */
+ hci_set_quirk(hdev, HCI_QUIRK_USE_BDADDR_PROPERTY);
}

exit:
--
2.56.0