| From a3596553814bc9ebd3c683ca797ff8ef5cf3fd26 Mon Sep 17 00:00:00 2001 |
| From: Ferry Toth <ftoth@exalondelft.nl> |
| Date: Tue, 9 Apr 2019 16:15:50 +0200 |
| Subject: Bluetooth: btbcm: Add default address for BCM43341B |
| |
| [ Upstream commit 5035726128cd2e3813ee44deedb9898509edb232 ] |
| |
| The BCM43341B has the default MAC address 43:34:1B:00:1F:AC if none |
| is given. This address was found when enabling Bluetooth on multiple |
| Intel Edison modules. It also contains the sequence 43341B, the name |
| the chip identifies itself as. Using the same BD_ADDR is problematic |
| when having multiple Intel Edison modules in each others range. |
| The default address also has the LAA (locally administered address) |
| bit set which prevents a BNEP device from being created, needed for |
| BT tethering. |
| |
| Add this to the list of black listed default MAC addresses and let |
| the user configure a valid one using f.i. |
| `btmgmt -i hci0 public-addr xx:xx:xx:xx:xx:xx` |
| |
| Suggested-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> |
| Signed-off-by: Ferry Toth <ftoth@exalondelft.nl> |
| Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> |
| Signed-off-by: Marcel Holtmann <marcel@holtmann.org> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| drivers/bluetooth/btbcm.c | 4 +++- |
| 1 file changed, 3 insertions(+), 1 deletion(-) |
| |
| diff --git a/drivers/bluetooth/btbcm.c b/drivers/bluetooth/btbcm.c |
| index d5d6e6e5da3bf..62d3aa2b26f60 100644 |
| --- a/drivers/bluetooth/btbcm.c |
| +++ b/drivers/bluetooth/btbcm.c |
| @@ -37,6 +37,7 @@ |
| #define BDADDR_BCM43430A0 (&(bdaddr_t) {{0xac, 0x1f, 0x12, 0xa0, 0x43, 0x43}}) |
| #define BDADDR_BCM4324B3 (&(bdaddr_t) {{0x00, 0x00, 0x00, 0xb3, 0x24, 0x43}}) |
| #define BDADDR_BCM4330B1 (&(bdaddr_t) {{0x00, 0x00, 0x00, 0xb1, 0x30, 0x43}}) |
| +#define BDADDR_BCM43341B (&(bdaddr_t) {{0xac, 0x1f, 0x00, 0x1b, 0x34, 0x43}}) |
| |
| int btbcm_check_bdaddr(struct hci_dev *hdev) |
| { |
| @@ -82,7 +83,8 @@ int btbcm_check_bdaddr(struct hci_dev *hdev) |
| !bacmp(&bda->bdaddr, BDADDR_BCM20702A1) || |
| !bacmp(&bda->bdaddr, BDADDR_BCM4324B3) || |
| !bacmp(&bda->bdaddr, BDADDR_BCM4330B1) || |
| - !bacmp(&bda->bdaddr, BDADDR_BCM43430A0)) { |
| + !bacmp(&bda->bdaddr, BDADDR_BCM43430A0) || |
| + !bacmp(&bda->bdaddr, BDADDR_BCM43341B)) { |
| bt_dev_info(hdev, "BCM: Using default device address (%pMR)", |
| &bda->bdaddr); |
| set_bit(HCI_QUIRK_INVALID_BDADDR, &hdev->quirks); |
| -- |
| 2.20.1 |
| |