![]() + if (!test_bit(HCI_QUIRK_BROKEN_FILTER_CLEAR_ALL, &hdev->quirks)) + * this type of filter, so avoid sending the request altogether. + /* Clear Event Filters some fake CSR controllers lock up after setting hci_req_add(req, HCI_OP_SET_EVENT_FLT, 1, &flt_type) Hci_req_add(req, HCI_OP_READ_CURRENT_IAC_LAP, 0, NULL) _u8 -292,9 +293,14 static void bredr_setup(struct hci_request *req) Static void bredr_setup(struct hci_request *req) +++ -271,6 +271,7 static int hci_init1_req(struct hci_request *req, unsigned long opt) + * runtime suspend, because event filtering takes place there.ĭiff -git a/net/bluetooth/hci_core.c b/net/bluetooth/hci_core.c ![]() + * Note that devices using this must (separately) disable + * clones struggle with this and instantly lock up. + * HCI_FLT_CLEAR_ALL are ignored and event filtering is + /* When this quirk is set, HCI_OP_SET_EVENT_FLT requests with * during the hdev->setup vendor callback. + bt_dev_warn(hdev, "CSR: Couldn't suspend the device for our Barrot 8041a02 receive-issue workaround") ĭiff -git a/include/net/bluetooth/hci.h b/include/net/bluetooth/hci.h bt_dev_err(hdev, "CSR: Failed to suspend the device for our Barrot 8041a02 receive-issue workaround") * HCI and then wake-it up by disabling -1981,7 +1983,7 static int btusb_setup_csr(struct hci_dev *hdev) enable runtime-suspend, force-suspend the + * (IOW remote-wakeup support is broken for the bulk endpoint). * (IOW remote-wakeup support is broken for the bulk endpoint). They will not wakeup when autosuspended and receiving data + * the device was suspended at least once (yes, really). * the device was suspended at least once (yes, really). Their bulk RX endpoint will never report any data unless * These controllers are really messed-up. * Special workaround for these BT 4.0 chip clones, and potentially more: * early Bluetooth 1.1 device from -1952,16 +1954,16 static int btusb_setup_csr(struct hci_dev *hdev) * Clear the reset quirk since this is not an actual + set_bit(HCI_QUIRK_NO_SUSPEND_NOTIFIER, &hdev->quirks) + set_bit(HCI_QUIRK_BROKEN_FILTER_CLEAR_ALL, &hdev->quirks) Set_bit(HCI_QUIRK_BROKEN_ERR_DATA_REPORTING, &hdev->quirks) Set_bit(HCI_QUIRK_BROKEN_STORED_LINK_KEY, &hdev->quirks) ![]() diff -git a/drivers/bluetooth/btusb.c b/drivers/bluetooth/btusb.c diff file and apply it on the kernel source. I just combined them and made it compatible with linux 5.15.x LTS. Credit goes to for creating the original patches. ![]() Bluetooth: BNEP socket layer initializedĪnyone who needs a patch for linux 5.15.x LTS series, can use this patch. Bluetooth: BNEP filters: protocol multicast Bluetooth: BNEP (Ethernet Emulation) ver 1.3 Bluetooth: hci0: Opcode 0x c5a failed: -110 Bluetooth: hci0: command 0x0c5a tx timeout Bluetooth: hci0: HCI Set Event Filter command not supported. Bluetooth: hci0: HCI Delete Stored Link Key command is advertised, but not supported. Bluetooth: hci0: CSR: Couldn't suspend the device for our Barrot 8041a02 receive-issue workaround Bluetooth: hci0: CSR: Unbranded CSR clone detected adding workarounds and force-suspending once. Bluetooth: L2CAP socket layer initialized Bluetooth: HCI device and connection manager initialized I`m running Fedora 37 with kernel 6.0.7-301, unmodified.Īlso getting errors, it used to work just fine on Fedora 35 and on older kernels in other distros. ![]()
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |