Bug 199351

Summary: intel 8265 bluetooth no longer functions as of 4.16
Product: Drivers Reporter: Jeb Rosen (jeb)
Component: BluetoothAssignee: linux-bluetooth (linux-bluetooth)
Status: NEW ---    
Severity: normal CC: linux, prettyvanilla, someuniquename
Priority: P1    
Hardware: All   
OS: Linux   
Kernel Version: 4.16 Subsystem:
Regression: No Bisected commit-id:

Description Jeb Rosen 2018-04-11 07:05:23 UTC
After upgrading to kernel 4.16 (4.16.0-2-ARCH), my intel 8265 bluetooth device has stopped functioning.

`bluetoothctl list` is empty and `bluetoothctl power on` reports "No default controller available".

With the previous kernel I was using, 4.15.15, the device worked correctly.

I am willing to bisect and/or apply patches but it will be slow on my end. I do see some significant restructuring of the boot process and firmware loading in drivers/bluetooth/*intel* between 4.15 and 4.16, but I haven't been able to test if reverting any of those commits makes a difference.
Comment 1 Bernd Steinhauser 2018-04-11 16:46:25 UTC
Does it never work for you?

I think I'm experiencing a similar issue with a CSL bluetooth device that worked just fine before 4.16, but now it only works for some time and then disappears completely (also from lsusb).

However, it usually works when I just started the system.
Sometimes replugging the device does bring it back.

It might be related to the BTLE changes made between 4.15 and 4.16.
Comment 2 Jeb Rosen 2018-04-11 16:55:32 UTC
That sounds like a different issue from mine. Mine stays visible in lsusb, but it never seems to register as a bluetooth controller.
Comment 3 Emmanuel Grumbach 2018-04-12 03:42:01 UTC
I'm not a bt guy, but I'd try to see if there is a newer firmware in linux-firmware.git that the new driver may be looking for.
Comment 4 Emmanuel Grumbach 2018-04-12 03:42:48 UTC
This new firmware would be under intel/
Comment 5 Jeb Rosen 2018-04-12 05:36:20 UTC
The newer firmware in linux-firmware.git makes no difference -- the older and newer firmware both work on 4.15 and both fail on 4.16.

I started a git bisect on the kernel but it will likely be another day or two before I'll be able to get around to finishing it.
Comment 6 Emmanuel Grumbach 2018-04-12 05:48:13 UTC
ok so this is what I could do.
(not a BT guy).
Comment 7 Jeb Rosen 2018-04-13 03:29:32 UTC
I believe I have found the culprit: commit eff2d68ca7388ee1c08811c6bbf4d8587cba01da enables btusb autosuspend by default given a certain Kconfig option, and I confirmed that Arch Linux did opt in to it. 


Appending `btusb.enable_autosuspend=n` to my kernel command line has effectively solved my issue as far as I am concerned.

I had discovered that autosuspend "broke" my bluetooth device a long time ago, but it hasn't crossed my mind for a while. The actual bug here is that autosuspend causes the bluetooth device to stop working.
Comment 8 Bernd Steinhauser 2018-04-13 05:00:48 UTC
Interesting, because that's exactly the option that I found to cause my problem as well, even though the outcome seems to be different. ;)