Bug 202429

Summary: No Bluetooth Adapter on boot - Works after woken up from suspend/sleep - Intel Ac 9260
Product: Drivers Reporter: Tp (cordleztoaster)
Component: BluetoothAssignee: linux-bluetooth (linux-bluetooth)
Status: CLOSED WILL_NOT_FIX    
Severity: high CC: cordleztoaster, matt680209
Priority: P1    
Hardware: All   
OS: Linux   
Kernel Version: 4.20.5 Subsystem:
Regression: No Bisected commit-id:
Attachments: dmesg
system log

Description Tp 2019-01-27 21:59:08 UTC
Created attachment 280815 [details]
dmesg

Hi All

Using a Lenovo e485 laptop which i replaced the wifi card with an intel AC 9260 wireless with Bluetooth 5.0 (rev 29).

Booting either ubuntu 18.04 or 18.10 with kernel 4.18.* through to 4.20.* the bluetooth is not detected and can't be switched on.

After updating the firmware with the latest from here
https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/

I'm now at a point where if i let the laptop go into sleep/suspend, then wake the laptop up bluetooth starts to work and successfully discovers and can connect to devices.

Here is the dmesg output after the laptop has woken from sleep/suspend

$ dmesg | egrep -i 'blue|firm'
[ 0.364229] ACPI: [Firmware Bug]: BIOS _OSI(Linux) query ignored
[ 0.406110] acpi PNP0A08:00: [Firmware Info]: MMCONFIG for domain 0000 [bus 00-3f] only partially covers this bridge
[ 2.788840] Bluetooth: Core ver 2.22
[ 2.788859] Bluetooth: HCI device and connection manager initialized
[ 2.788878] Bluetooth: HCI socket layer initialized
[ 2.788881] Bluetooth: L2CAP socket layer initialized
[ 2.788885] Bluetooth: SCO socket layer initialized
[ 2.810244] Bluetooth: hci0: Firmware revision 0.1 build 130 week 44 2018
[ 2.817186] iwlwifi 0000:04:00.0: loaded firmware version 41.fc1a7aea.0 op_mode iwlmvm
[ 3.042541] [drm] Found VCN firmware Version: 1.73 Family ID: 18
[ 3.042568] [drm] PSP loading VCN firmware
[ 3.401831] psmouse serio2: trackpoint: Elan TrackPoint firmware: 0x11, buttons: 3/3
[ 4.065429] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[ 4.065430] Bluetooth: BNEP filters: protocol multicast
[ 4.065434] Bluetooth: BNEP socket layer initialized
[ 4.933825] Bluetooth: hci0: command 0x080f tx timeout
[ 4.933855] Bluetooth: hci0: sending frame failed (-19)
[ 6.949824] Bluetooth: hci0: command 0x0c1b tx timeout
[ 6.949845] Bluetooth: hci0: sending frame failed (-19)
[ 8.970148] Bluetooth: hci0: command 0x0c46 tx timeout
[ 8.970210] Bluetooth: hci0: sending frame failed (-19)
[ 10.981885] Bluetooth: hci0: command 0x2001 tx timeout
[ 10.982056] Bluetooth: hci0: sending frame failed (-19)
[ 12.998061] Bluetooth: hci0: command 0x200f tx timeout
[ 12.998122] Bluetooth: hci0: sending frame failed (-19)
[ 2705.041640] Bluetooth: hci0: Bootloader revision 0.1 build 42 week 52 2015
[ 2705.044665] Bluetooth: hci0: Device revision is 2
[ 2705.044668] Bluetooth: hci0: Secure boot is enabled
[ 2705.044670] Bluetooth: hci0: OTP lock is enabled
[ 2705.044672] Bluetooth: hci0: API lock is enabled
[ 2705.044674] Bluetooth: hci0: Debug lock is disabled
[ 2705.044677] Bluetooth: hci0: Minimum firmware build 1 week 10 2014
[ 2705.048826] Bluetooth: hci0: Found device firmware: intel/ibt-18-16-1.sfi
[ 2706.367400] Bluetooth: hci0: Waiting for firmware download to complete
[ 2706.367614] Bluetooth: hci0: Firmware loaded in 1298523 usecs
[ 2706.367724] Bluetooth: hci0: Waiting for device to boot
[ 2706.383685] Bluetooth: hci0: Device booted in 15620 usecs
[ 2706.385856] Bluetooth: hci0: Found Intel DDC parameters: intel/ibt-18-16-1.ddc
[ 2706.397687] Bluetooth: hci0: Applying Intel DDC parameters completed
[ 2706.578691] Bluetooth: RFCOMM TTY layer initialized
[ 2706.578698] Bluetooth: RFCOMM socket layer initialized
[ 2706.578705] Bluetooth: RFCOMM ver 1.11
[ 2718.694753] Bluetooth: HIDP (Human Interface Emulation) ver 1.2
[ 2718.694760] Bluetooth: HIDP socket layer initialized
[ 2718.702815] input: MagicMouse as /devices/pci0000:00/0000:00:08.1/0000:05:00.4/usb3/3-1/3-1:1.0/bluetooth/hci0/hci0:256/0005:05AC:030D.0001/input/input16
[ 2718.703050] magicmouse 0005:05AC:030D.0001: input,hidraw0: BLUETOOTH HID v3.06 Mouse [MagicMouse] on fc:77:74:eb:f6:2b
Comment 1 Tp 2019-01-27 21:59:51 UTC
Created attachment 280817 [details]
system log
Comment 2 mattchen 2019-02-13 07:44:55 UTC
Hi,

When you update the BT firmware, have you ever tried power off then power on your laptop ?
Update BT firmware requires power off the BT device and power on again, not just suspend or resume.

And did you take below two commit for your testing ?
https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/commit/intel/ibt-18-16-1.sfi?id=ae90c3bce108ac623bc0bae44a7b411e4fa42e7c
https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/commit/intel/ibt-18-16-1.ddc?id=d8e8163cf7c082bda83887adf246e866919682f9
Comment 3 Tp 2019-02-14 10:56:00 UTC
Hi Mattchen

Appreciate the response. 
Have tried power off and on. I can confirm i have tried both of those commits.
Still no luck.

Have also tried Kernel 5.0-rc6 and still have the same issue.
Comment 4 Tp 2019-03-08 07:27:03 UTC
Intels response on the issue:


Here is a summary of the engineering actions, results of our efforts, and recommended next steps:

We were able to track down the same system and reproduce the issue
We were able to successfully enable our BT device in the system after boot up, which points to something in system boot/power sequence preventing BT from enabling
The RTK 3rd party module exhibited the same behavior as our Intel module, which points to a system level setting that doesn’t allow for any device to be used other than what ships with the platform (Qualcomm card) – thought to be likely due to BIOS or Linux Kernel rule setting
We checked with Lenovo as they used to have a BIOS setting that wouldn’t allow another adapter to work (called mutual authentication), but this was removed a few years ago
Unfortunately we cannot debug any further on this as we do not have access to the proprietary code needed to do further debug. Our best recommendation is to take the engineering debug analysis we have been able to provide above and contact Lenovo to determine if they will conduct further testing to determine the boot/power up setting that is preventing the BT from being enabled. Please be aware that our card was never validated on this platform since it’s not an approved platform combination from Lenovo, and so they may not see this issue as one that needs to be resolved.