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 <a...@suse.com>
---
 drivers/bluetooth/btsdio.c | 12 +++++++++---
 1 file changed, 9 insertions(+), 3 deletions(-)

diff --git a/drivers/bluetooth/btsdio.c b/drivers/bluetooth/btsdio.c
index 20142bc77554..a0a6d555901c 100644
--- a/drivers/bluetooth/btsdio.c
+++ b/drivers/bluetooth/btsdio.c
@@ -297,9 +297,15 @@ static int btsdio_probe(struct sdio_func *func,
         * 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;
+                       default:
+                               break;
+               }
+       }
 
        data = devm_kzalloc(&func->dev, sizeof(*data), GFP_KERNEL);
        if (!data)
-- 
2.18.0

Reply via email to