summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHans de Goede <hdegoede@redhat.com>2021-02-18 14:51:16 +0100
committerHans de Goede <hdegoede@redhat.com>2021-02-18 14:51:16 +0100
commit4be6f28213e1f47d3aef09a4f0f9ee5c406d2589 (patch)
tree49b1d57fa14eb1cb94eb44d154f56a387ea8ba3b
parent62a3a4a4af35cc92117fc05830c77805c29cbb70 (diff)
downloadkernel-4be6f28213e1f47d3aef09a4f0f9ee5c406d2589.tar.gz
kernel-4be6f28213e1f47d3aef09a4f0f9ee5c406d2589.tar.xz
kernel-4be6f28213e1f47d3aef09a4f0f9ee5c406d2589.zip
Fix various QCA bluetooth devices no longer working (rhbz#1916104)
-rw-r--r--bluetooth-btusb-qca-fix.patch51
-rw-r--r--kernel.spec6
2 files changed, 57 insertions, 0 deletions
diff --git a/bluetooth-btusb-qca-fix.patch b/bluetooth-btusb-qca-fix.patch
new file mode 100644
index 000000000..d770639a3
--- /dev/null
+++ b/bluetooth-btusb-qca-fix.patch
@@ -0,0 +1,51 @@
+From 28ddef379ecc0ab1ae646f6442cfa839ab9a15b2 Mon Sep 17 00:00:00 2001
+From: Hui Wang <hui.wang@canonical.com>
+Date: Mon, 8 Feb 2021 13:02:37 +0800
+Subject: [PATCH 5.12 regression fix] Bluetooth: btusb: Some Qualcomm Bluetooth
+ adapters stop working
+
+This issue starts from linux-5.10-rc1, I reproduced this issue on my
+Dell Inspiron 7447 with BT adapter 0cf3:e005, the kernel will print
+out: "Bluetooth: hci0: don't support firmware rome 0x31010000", and
+someone else also reported the similar issue to bugzilla #211571.
+
+I found this is a regression introduced by 'commit b40f58b97386
+("Bluetooth: btusb: Add Qualcomm Bluetooth SoC WCN6855 support"), the
+patch assumed that if high ROM version is not zero, it is an adapter
+on WCN6855, but many old adapters don't need to load rampatch or nvm,
+and they have non-zero high ROM version.
+
+To fix it, let the driver match the rom_version in the
+qca_devices_table first, if there is no entry matched, check the
+high ROM version, if it is not zero, we assume this adapter is ready
+to work and no need to load rampatch and nvm like previously.
+
+BugLink: https://bugzilla.kernel.org/show_bug.cgi?id=211571
+Fixes: b40f58b97386 ("Bluetooth: btusb: Add Qualcomm Bluetooth SoC WCN6855 support")
+Signed-off-by: Hui Wang <hui.wang@canonical.com>
+Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
+---
+ drivers/bluetooth/btusb.c | 7 +++++++
+ 1 file changed, 7 insertions(+)
+
+diff --git a/drivers/bluetooth/btusb.c b/drivers/bluetooth/btusb.c
+index 80468745d5c5..1c128de99abd 100644
+--- a/drivers/bluetooth/btusb.c
++++ b/drivers/bluetooth/btusb.c
+@@ -3693,6 +3693,13 @@ static int btusb_setup_qca(struct hci_dev *hdev)
+ info = &qca_devices_table[i];
+ }
+ if (!info) {
++ /* If the rom_version is not matched in the qca_devices_table
++ * and the high ROM version is not zero, we assume this chip no
++ * need to load the rampatch and nvm.
++ */
++ if (ver_rom & ~0xffffU)
++ return 0;
++
+ bt_dev_err(hdev, "don't support firmware rome 0x%x", ver_rom);
+ return -ENODEV;
+ }
+--
+2.30.1
+
diff --git a/kernel.spec b/kernel.spec
index 493bcea54..d21eac0f5 100644
--- a/kernel.spec
+++ b/kernel.spec
@@ -860,6 +860,9 @@ Patch108: media-pwc-fix-the-urb-buffer-allocation.patch
Patch109: 0001-Revert-drm-amd-display-Update-NV1x-SR-latency-values.patch
+# rhbz 1916104 (patch from bluetooth-next)
+Patch110: bluetooth-btusb-qca-fix.patch
+
# END OF PATCH DEFINITIONS
%endif
@@ -2973,6 +2976,9 @@ fi
#
#
%changelog
+* Thu Feb 18 2021 Hans de Goede <hdegoede@redhat.com>
+- Fix various QCA bluetooth devices no longer working (rhbz#1916104)
+
* Wed Feb 17 2021 Justin M. Forbes <jforbes@fedoraproject.org> - 5.10.17-100
- Linux v5.10.17