Bluetooth: btsdio: Do not bind to non-removable BCM43430

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>
This commit is contained in:
Cho, Yu-Chen 2018-10-02 17:57:04 +08:00 committed by Marcel Holtmann
parent d864991b22
commit 70ecdd3d8b

View File

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