Bug 194839

Summary: Intel 8265 M.2 card: Bluetooth stops working after about 30 seconds
Product: Drivers Reporter: Sven Köhler (sven.koehler)
Component: BluetoothAssignee: linux-bluetooth (linux-bluetooth)
Status: RESOLVED PATCH_ALREADY_AVAILABLE    
Severity: normal CC: kanru.kernel, tedd.an
Priority: P1    
Hardware: All   
OS: Linux   
Kernel Version: 4.10.1 Subsystem:
Regression: No Bisected commit-id:

Description Sven Köhler 2017-03-09 23:55:22 UTC
When resuming from suspend to RAM, bluetooth works just fine for about 30 seconds. Then, my bluetooth mouse stops.

If I reboot the machine, then the Windows drivers fail to load with the error "STATUS_DEVICE_POWER_FAILURE" whatever that means. If I suspend and resume the machine while running Windows 10, that actually fixes the issue and the bluetooth device starts to work! I can subsequently use my bluetooth mouse for hours.

Reboot into Linux again, I can also use the bluetooth mouse just fine. But after another suspend/resume while running Linux, things are broken again. The mouse stops working after 30 seconds. I can issue a USBDEVFS_RESET ioctl to the device, and bluetooth will start working again - and then stops again after 30 seconds.

I can poweroff the PC and then boot into Linux and the bluetooth mouse works properly until the next suspend/resume cycle.
Comment 1 Sven Köhler 2017-03-09 23:59:27 UTC
The laptop is a Dell XPS 15 9560. Beside root and resume device, the following two parameters are passed to the kernel: pcie_port_pm=off acpi_rev_override
Comment 2 Sven Köhler 2017-03-11 00:56:17 UTC
I suspended/resumed the machine and worked with it for hours. Bluetooth was not in use. When I powered on the bluetooth mouse, it worked for 30 seconds and then stopped working again.

That the connection has stopped does not seem to be recognized by the blueman applet. It still shows that the bluetooth adapter is busy, even though the mouse is turned off.

Terminating the connection to the mouse explicitly via the blueman manager doesn't work.
Comment 3 Sven Köhler 2017-03-11 01:09:46 UTC
The issue looks similar to bug 120161. I sometimes also see command timeouts in dmesg. Such as:

[18064.739402] Bluetooth: hci0 command 0x0c1a tx timeout
[18066.786402] Bluetooth: hci0 command 0x200c tx timeout
Comment 4 Sven Köhler 2017-03-11 01:14:46 UTC
I'm apparently using Firmware revision 0.1 build 82 week 37 2016 from intel/ibt-12-16.sfi
Comment 5 Tedd An 2017-03-11 02:29:25 UTC
There is new FW recently submitted:
Try with this version.

Also, upload the dmesg log and collect the log with btmon.
Comment 7 Sven Köhler 2017-03-11 12:27:26 UTC
I'm using Firmware revision 0.1 build 103 week 50 2016 from the link you provided. It seems to work so far as far as Linux is concerned.

When rebooting into Windows, the Windows driver fails. Apparently it refuses to work with firmware build 103. From my logs I can tell that at some point I had firmware build 107 in the card. I presume this is the firmware used by the Windows driver? My best guess is that Windows drivers refuses to work because once the firmware is uploaded by Linux it can't upgrade it from build 103 to 107?

Is this a known issue?
Comment 8 Sven Köhler 2017-03-12 19:27:46 UTC
Well, build 103 of the firmware fixes the bug. So I will close this.

However, I don't see how the Intel Bluetooth cards can work in a dual boot environment. The Linux drivers seem to use whatever firmware the Windows driver uploads and vice versa.

I have created an Intel community thread to discuss the issue:
https://communities.intel.com/message/459532