+++ /dev/null
-From b4cdaba274247c9c841c6a682c08fa91fb3aa549 Mon Sep 17 00:00:00 2001
-From: Hans de Goede <hdegoede@redhat.com>
-Date: Wed, 29 Nov 2017 20:29:07 +0100
-Subject: Bluetooth: btsdio: Do not bind to non-removable BCM43341
-
-From: Hans de Goede <hdegoede@redhat.com>
-
-commit b4cdaba274247c9c841c6a682c08fa91fb3aa549 upstream.
-
-BCM43341 devices soldered onto the PCB (non-removable) always (AFAICT)
-use an UART connection for bluetooth. But they also advertise btsdio
-support on their 3th sdio function, this causes 2 problems:
-
-1) A non functioning BT HCI getting registered
-
-2) Since the btsdio driver does not have suspend/resume callbacks,
-mmc_sdio_pre_suspend will return -ENOSYS, causing mmc_pm_notify()
-to react as if the SDIO-card is removed and since the slot is
-marked as non-removable it will never get detected as inserted again.
-Which results in wifi no longer working after a suspend/resume.
-
-This commit fixes both by making btsdio ignore BCM43341 devices
-when connected to a slot which is marked non-removable.
-
-Signed-off-by: Hans de Goede <hdegoede@redhat.com>
-Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-
----
- drivers/bluetooth/btsdio.c | 9 +++++++++
- 1 file changed, 9 insertions(+)
-
---- a/drivers/bluetooth/btsdio.c
-+++ b/drivers/bluetooth/btsdio.c
-@@ -31,6 +31,7 @@
- #include <linux/errno.h>
- #include <linux/skbuff.h>
-
-+#include <linux/mmc/host.h>
- #include <linux/mmc/sdio_ids.h>
- #include <linux/mmc/sdio_func.h>
-
-@@ -303,6 +304,14 @@ static int btsdio_probe(struct sdio_func
- tuple = tuple->next;
- }
-
-+ /* BCM43341 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;
-+
- data = devm_kzalloc(&func->dev, sizeof(*data), GFP_KERNEL);
- if (!data)
- return -ENOMEM;
arm-kvm-fix-smccc-handling-of-unimplemented-smc-hvc-calls.patch
media-cxusb-dib0700-ignore-xc2028_i2c_flush.patch
kernel-async.c-revert-async-simplify-lowest_in_progress.patch
-bluetooth-btsdio-do-not-bind-to-non-removable-bcm43341.patch
signal-openrisc-fix-do_unaligned_access-to-send-the-proper-signal.patch
signal-sh-ensure-si_signo-is-initialized-in-do_divide_error.patch
alpha-fix-crash-if-pthread_create-races-with-signal-delivery.patch