Bluetooth: btbcm: Add default address for BCM43430A0
authorChen-Yu Tsai <wens@csie.org>
Mon, 17 Dec 2018 04:04:47 +0000 (12:04 +0800)
committerMarcel Holtmann <marcel@holtmann.org>
Tue, 18 Dec 2018 23:28:39 +0000 (00:28 +0100)
The BCM43430A0 has the default MAC address 43:43:A0:12:1F:AC if none
is given. This address was found when enabling Bluetooth on a bunch of
boards with the AMPAK AP6210 module, all sharing the same address. It
also contains the sequence 4343A0, which is suspicious as that is also
the name the chip identifies itself as.

Add this to the list of default MAC addresses and leave it to the user
to configure a valid one.

Signed-off-by: Chen-Yu Tsai <wens@csie.org>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
drivers/bluetooth/btbcm.c

index 22d4b530da03276dd4fedc45e00a430365867fa9..08e1f3dd4e03c950b1d733c61ed195457604f29c 100644 (file)
@@ -34,6 +34,7 @@
 
 #define BDADDR_BCM20702A0 (&(bdaddr_t) {{0x00, 0xa0, 0x02, 0x70, 0x20, 0x00}})
 #define BDADDR_BCM20702A1 (&(bdaddr_t) {{0x00, 0x00, 0xa0, 0x02, 0x70, 0x20}})
+#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}})
 
@@ -73,11 +74,15 @@ int btbcm_check_bdaddr(struct hci_dev *hdev)
         *
         * The address 43:30:B1:00:00:00 indicates a BCM4330B1 controller
         * with waiting for configuration state.
+        *
+        * The address 43:43:A0:12:1F:AC indicates a BCM43430A0 controller
+        * with no configured address.
         */
        if (!bacmp(&bda->bdaddr, BDADDR_BCM20702A0) ||
            !bacmp(&bda->bdaddr, BDADDR_BCM20702A1) ||
            !bacmp(&bda->bdaddr, BDADDR_BCM4324B3) ||
-           !bacmp(&bda->bdaddr, BDADDR_BCM4330B1)) {
+           !bacmp(&bda->bdaddr, BDADDR_BCM4330B1) ||
+           !bacmp(&bda->bdaddr, BDADDR_BCM43430A0)) {
                bt_dev_info(hdev, "BCM: Using default device address (%pMR)",
                            &bda->bdaddr);
                set_bit(HCI_QUIRK_INVALID_BDADDR, &hdev->quirks);