[PATCH v10 09/10] Bluetooth: qca: Set NVMEM BD address quirks when address is invalid
Loic Poulain <[email protected]>
| Newsgroups | gmane.linux.block,gmane.linux.kernel.mmc,gmane.linux.drivers.devicetree,gmane.linux.kernel,gmane.linux.ports.arm.msm,gmane.linux.kernel.wireless.general,gmane.linux.drivers.ath10k.devel,gmane.linux.bluez.kernel,gmane.linux.network |
|---|---|
| Message-ID | <[email protected]> |
When the controller BD address is invalid (zero or default), set the NVMEM quirks to allow retrieving the address from a 'local-bd-address' NVMEM cell. The BD address is often stored alongside the WiFi MAC address in big-endian format, so also set the big-endian quirk. Reviewed-by: Bartosz Golaszewski <[email protected]> Signed-off-by: Loic Poulain <[email protected]> --- drivers/bluetooth/btqca.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/drivers/bluetooth/btqca.c b/drivers/bluetooth/btqca.c index 04ebe290bc784ea854ec7743bc753c3e41f556d3..06cb787b0559f3d712ec2b88d9e25a7d46fb00b3 100644 --- a/drivers/bluetooth/btqca.c +++ b/drivers/bluetooth/btqca.c @@ -723,8 +723,11 @@ static int qca_check_bdaddr(struct hci_dev *hdev, const struct qca_fw_config *co } bda = (struct hci_rp_read_bd_addr *)skb->data; - if (!bacmp(&bda->bdaddr, &config->bdaddr)) + if (!bacmp(&bda->bdaddr, &config->bdaddr)) { hci_set_quirk(hdev, HCI_QUIRK_USE_BDADDR_PROPERTY); + hci_set_quirk(hdev, HCI_QUIRK_USE_BDADDR_NVMEM); + hci_set_quirk(hdev, HCI_QUIRK_BDADDR_NVMEM_BE); + } kfree_skb(skb); -- 2.34.1