Commit 70ecdd3d authored by Cho, Yu-Chen's avatar Cho, Yu-Chen Committed by Marcel Holtmann
Browse files

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: default avatarCho, Yu-Chen <acho@suse.com>
Signed-off-by: default avatarMarcel Holtmann <marcel@holtmann.org>
parent d864991b
Loading
Loading
Loading
Loading
+9 −5
Original line number Diff line number Diff line
@@ -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))
	    !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)