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.
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
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.
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
I'm apparently using Firmware revision 0.1 build 82 week 37 2016 from intel/ibt-12-16.sfi
There is new FW recently submitted: Try with this version. Also, upload the dmesg log and collect the log with btmon.
This is the link: https://git.kernel.org/cgit/linux/kernel/git/firmware/linux-firmware.git/commit/?id=1dcf7691f623c24762976e2debe05248d627e814
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?
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