From: Zijun Hu <zijuhu@xxxxxxxxxxxxxxxx> A CSR BT dongle fails to be enabled bcz it is not detected as fake rightly, fixed by correcting fake detection condition. below btmon error log says HCI_QUIRK_BROKEN_FILTER_CLEAR_ALL is not set. < HCI Command: Set Event Filter (0x03|0x0005) plen 1 #23 [hci0] Type: Clear All Filters (0x00) > HCI Event: Command Complete (0x0e) plen 4 #24 [hci0] Set Event Filter (0x03|0x0005) ncmd 1 Status: Invalid HCI Command Parameters (0x12) the quirk is not set bcz current fake detection does not mark the dongle as fake with below version info. < HCI Command: Read Local Version In.. (0x04|0x0001) plen 0 #1 [hci0] > HCI Event: Command Complete (0x0e) plen 12 #2 [hci0] Read Local Version Information (0x04|0x0001) ncmd 1 Status: Success (0x00) HCI version: Bluetooth 4.0 (0x06) - Revision 12576 (0x3120) LMP version: Bluetooth 4.0 (0x06) - Subversion 8891 (0x22bb) Manufacturer: Cambridge Silicon Radio (10) Link: https://bugzilla.kernel.org/show_bug.cgi?id=60824 Signed-off-by: Zijun Hu <zijuhu@xxxxxxxxxxxxxxxx> --- drivers/bluetooth/btusb.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/bluetooth/btusb.c b/drivers/bluetooth/btusb.c index 420be2ee2acf..727469d073f9 100644 --- a/drivers/bluetooth/btusb.c +++ b/drivers/bluetooth/btusb.c @@ -2155,7 +2155,7 @@ static int btusb_setup_csr(struct hci_dev *hdev) is_fake = true; else if (le16_to_cpu(rp->lmp_subver) <= 0x22bb && - le16_to_cpu(rp->hci_ver) > BLUETOOTH_VER_4_0) + le16_to_cpu(rp->hci_ver) >= BLUETOOTH_VER_4_0) is_fake = true; /* Other clones which beat all the above checks */ -- The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum, a Linux Foundation Collaborative Project