https://bugzilla.kernel.org/show_bug.cgi?id=219514 --- Comment #2 from Tony Houghton (h@xxxxxxxxxxx) --- I've copied btusb.c and btmtk.c from 6dc22ab9f085 to a checkout of 6.13-rc2 and changed a few lines to make it compatible with some things that have changed since then: diff --git a/drivers/bluetooth/btmtk.c b/drivers/bluetooth/btmtk.c index fe3b892f6c6e..9eeddbb7d991 100644 --- a/drivers/bluetooth/btmtk.c +++ b/drivers/bluetooth/btmtk.c @@ -6,7 +6,7 @@ #include <linux/firmware.h> #include <linux/usb.h> #include <linux/iopoll.h> -#include <asm/unaligned.h> +#include <linux/unaligned.h> #include <net/bluetooth/bluetooth.h> #include <net/bluetooth/hci_core.h> diff --git a/drivers/bluetooth/btusb.c b/drivers/bluetooth/btusb.c index 034256c399dd..0e5cc454e2f9 100644 --- a/drivers/bluetooth/btusb.c +++ b/drivers/bluetooth/btusb.c @@ -17,7 +17,7 @@ #include <linux/suspend.h> #include <linux/gpio/consumer.h> #include <linux/debugfs.h> -#include <asm/unaligned.h> +#include <linux/unaligned.h> #include <net/bluetooth/bluetooth.h> #include <net/bluetooth/hci_core.h> @@ -3887,8 +3887,8 @@ static int btusb_probe(struct usb_interface *intf, if (id->driver_info & BTUSB_WIDEBAND_SPEECH) set_bit(HCI_QUIRK_WIDEBAND_SPEECH_SUPPORTED, &hdev->quirks); - if (id->driver_info & BTUSB_VALID_LE_STATES) - set_bit(HCI_QUIRK_VALID_LE_STATES, &hdev->quirks); + if (!(id->driver_info & BTUSB_VALID_LE_STATES)) + set_bit(HCI_QUIRK_BROKEN_LE_STATES, &hdev->quirks); if (id->driver_info & BTUSB_DIGIANSWER) { data->cmdreq_type = USB_TYPE_VENDOR; Some guesswork was involved, but it seems to work for me. I'd like to try to get to the bottom of the issue so I don't have to keep patching my kernel. Are there any options I could try? I've got plenty of experience with C, but not with the kernel, so if you could give me some guidance such as a summary of what changed in ceac1cb0259d, what code paths are taken during suspend/resume and any code tweaks I can try, it would be much appreciated. -- You may reply to this email to add a comment. You are receiving this mail because: You are the assignee for the bug.