From ac8490438f09a2b8f38670fe911984b75cb80d9b Mon Sep 17 00:00:00 2001 From: Hans de Goede Date: Thu, 18 Feb 2021 14:46:49 +0100 Subject: Fix various QCA bluetooth devices no longer working (rhbz#1916104) --- bluetooth-btusb-qca-fix.patch | 51 +++++++++++++++++++++++++++++++++++++++++++ kernel.spec | 6 +++++ 2 files changed, 57 insertions(+) create mode 100644 bluetooth-btusb-qca-fix.patch 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 +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 +Signed-off-by: Marcel Holtmann +--- + 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 2c5753d8d..e63995a7b 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 +- Fix various QCA bluetooth devices no longer working (rhbz#1916104) + * Wed Feb 17 2021 Justin M. Forbes - 5.10.17-200 - Linux v5.10.17 -- cgit