Bluetooth: btbcm: Add BCM4330B1 UART device
authorFrederic Danis <frederic.danis@linux.intel.com>
Mon, 27 Jul 2015 16:02:25 +0000 (18:02 +0200)
committerMarcel Holtmann <marcel@holtmann.org>
Thu, 30 Jul 2015 11:18:08 +0000 (13:18 +0200)
Add "waiting for configuration" address.
Add lmp_subver and firmware name for BCM4330B1 controller.

Signed-off-by: Frederic Danis <frederic.danis@linux.intel.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
drivers/bluetooth/btbcm.c

index 9ceb8ac68fdca2518c953cb6a9a36c6fd5b5f268..02ed816a18f9a2b652bbd0d179d150f50cad0294 100644 (file)
@@ -34,6 +34,7 @@
 
 #define BDADDR_BCM20702A0 (&(bdaddr_t) {{0x00, 0xa0, 0x02, 0x70, 0x20, 0x00}})
 #define BDADDR_BCM4324B3 (&(bdaddr_t) {{0x00, 0x00, 0x00, 0xb3, 0x24, 0x43}})
+#define BDADDR_BCM4330B1 (&(bdaddr_t) {{0x00, 0x00, 0x00, 0xb1, 0x30, 0x43}})
 
 int btbcm_check_bdaddr(struct hci_dev *hdev)
 {
@@ -66,9 +67,13 @@ int btbcm_check_bdaddr(struct hci_dev *hdev)
         *
         * The address 43:24:B3:00:00:00 indicates a BCM4324B3 controller
         * with waiting for configuration state.
+        *
+        * The address 43:30:B1:00:00:00 indicates a BCM4330B1 controller
+        * with waiting for configuration state.
         */
        if (!bacmp(&bda->bdaddr, BDADDR_BCM20702A0) ||
-           !bacmp(&bda->bdaddr, BDADDR_BCM4324B3)) {
+           !bacmp(&bda->bdaddr, BDADDR_BCM4324B3) ||
+           !bacmp(&bda->bdaddr, BDADDR_BCM4330B1)) {
                BT_INFO("%s: BCM: Using default device address (%pMR)",
                        hdev->name, &bda->bdaddr);
                set_bit(HCI_QUIRK_INVALID_BDADDR, &hdev->quirks);
@@ -241,6 +246,7 @@ static const struct {
        u16 subver;
        const char *name;
 } bcm_uart_subver_table[] = {
+       { 0x4103, "BCM4330B1"   },      /* 002.001.003 */
        { 0x410e, "BCM43341B0"  },      /* 002.001.014 */
        { 0x4406, "BCM4324B3"   },      /* 002.004.006 */
        { 0x610c, "BCM4354"     },      /* 003.001.012 */