Re: [PATCH v2 7/8] Bluetooth: qca: Set NVMEM BD address quirks when address is invalid
Bartosz Golaszewski <[email protected]> Mon, 11 May 2026 04:29:52 -0700
| Newsgroups | org.infradead.lists.ath10k,org.kernel.vger.linux-arm-msm,org.kernel.vger.linux-block,org.kernel.vger.linux-bluetooth,org.kernel.vger.linux-devicetree,org.kernel.vger.linux-kernel,org.kernel.vger.linux-mmc,org.kernel.vger.linux-wireless,org.kernel.vger.netdev |
|---|---|
| Message-ID | <CAMRc=Mfd-aZ4MYiREuj_+J1ffa3U5hq5akJm-Gmxt=M=U=ysoQ@mail.gmail.com> |
On Thu, 7 May 2026 17:24:42 +0200, Loic Poulain <[email protected]> said: > 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. > > 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 dda76365726f0bfe0e80e05fe04859fa4f0592e1..df33eacfd29fa680f393f90215150743e6001d5b 100644 > --- a/drivers/bluetooth/btqca.c > +++ b/drivers/bluetooth/btqca.c > @@ -721,8 +721,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 > > Reviewed-by: Bartosz Golaszewski <[email protected]>