Bluetooth: btsdio: Do not bind to non-removable BCM43430
authorCho, Yu-Chen <acho@suse.com>
Tue, 2 Oct 2018 09:57:04 +0000 (17:57 +0800)
committerMarcel Holtmann <marcel@holtmann.org>
Sun, 14 Oct 2018 08:23:47 +0000 (10:23 +0200)
BCM43430 devices soldered onto the PCB (non-removable)
use an UART connection for bluetooth.
But also advertise btsdio support on their 3th sdio function.

Signed-off-by: Cho, Yu-Chen <acho@suse.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
drivers/bluetooth/btsdio.c

index 20142bc..282d1af 100644 (file)
@@ -293,13 +293,17 @@ static int btsdio_probe(struct sdio_func *func,
                tuple = tuple->next;
        }
 
-       /* BCM43341 devices soldered onto the PCB (non-removable) use an
-        * uart connection for bluetooth, ignore the BT SDIO interface.
+       /* Broadcom devices soldered onto the PCB (non-removable) use an
+        * UART connection for Bluetooth, ignore the BT SDIO interface.
         */
        if (func->vendor == SDIO_VENDOR_ID_BROADCOM &&
-           func->device == SDIO_DEVICE_ID_BROADCOM_43341 &&
-           !mmc_card_is_removable(func->card->host))
-               return -ENODEV;
+           !mmc_card_is_removable(func->card->host)) {
+               switch (func->device) {
+               case SDIO_DEVICE_ID_BROADCOM_43341:
+               case SDIO_DEVICE_ID_BROADCOM_43430:
+                       return -ENODEV;
+               }
+       }
 
        data = devm_kzalloc(&func->dev, sizeof(*data), GFP_KERNEL);
        if (!data)