Bug 199197 - BCM2045B: Integrated Bluetooth adapter needs to be enabled twice to work on ThinkPad T400
Summary: BCM2045B: Integrated Bluetooth adapter needs to be enabled twice to work on T...
Status: NEW
Alias: None
Product: Drivers
Classification: Unclassified
Component: Bluetooth (show other bugs)
Hardware: All Linux
: P1 normal
Assignee: linux-bluetooth@vger.kernel.org
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2018-03-24 15:58 UTC by Dimitar Milkov
Modified: 2018-03-24 16:18 UTC (History)
1 user (show)

See Also:
Kernel Version: 4.13.0
Subsystem:
Regression: Yes
Bisected commit-id:


Attachments
lsusb (813 bytes, text/plain)
2018-03-24 16:05 UTC, Dimitar Milkov
Details

Description Dimitar Milkov 2018-03-24 15:58:20 UTC
This bug has been around since the 4.x kernels.

When the system boots up, Bluetooth is disabled as expected:

$ rfkill list
0: phy0: Wireless LAN
	Soft blocked: no
	Hard blocked: no
2: tpacpi_bluetooth_sw: Bluetooth
	Soft blocked: yes
	Hard blocked: no

After we try to enable it with 'rfkill unblock bluetooth', the Bluetooth interface hci0 is now present, but is soft blocked:

$ rfkill unblock bluetooth

$ rfkill list
0: phy0: Wireless LAN
	Soft blocked: no
	Hard blocked: no
2: tpacpi_bluetooth_sw: Bluetooth
	Soft blocked: no
	Hard blocked: no
10: hci0: Bluetooth
	Soft blocked: yes
	Hard blocked: no

However, Bluetooth is considered enabled by the thinkpad-acpi driver, as we can see:

$ cat /proc/acpi/ibm/bluetooth
status:		enabled
commands:	enable, disable

The Bluetooth LED is also on.

'hciconfig' is seeing the Bluetooth adapter as being DOWN:

$ hciconfig

hci0:	Type: BR/EDR  Bus: USB
	BD Address: 00:22:68:E4:BF:27  ACL MTU: 1021:8  SCO MTU: 64:1
	DOWN 
	RX bytes:511 acl:0 sco:0 events:23 errors:0
	TX bytes:339 acl:0 sco:0 commands:23 errors:0

To remove the soft block of hci0 and make the Bluetooth adapter fully operational, we should run 'rfkill unblock bluetooth' one more time.

$ rfkill unblock bluetooth

$ rfkill list
0: phy0: Wireless LAN
	Soft blocked: no
	Hard blocked: no
2: tpacpi_bluetooth_sw: Bluetooth
	Soft blocked: no
	Hard blocked: no
10: hci0: Bluetooth
	Soft blocked: no
	Hard blocked: no

$ hciconfig

hci0:	Type: BR/EDR  Bus: USB
	BD Address: 00:22:68:E4:BF:27  ACL MTU: 1021:8  SCO MTU: 64:1
	UP RUNNING PSCAN ISCAN 
	RX bytes:1046 acl:0 sco:0 events:50 errors:0
	TX bytes:943 acl:0 sco:0 commands:50 errors:0

Now the adapter is fully operational.

This behavior confuses most of the GUI applets that are used by the modern distributions, since they expect to have an operational adapter after the first attempt to enable it. This makes it impossible to use the Bluetooth adapter through them.

I`m currently testing on Linux Mint 18.3 MATE that is shipped with the 'blueberry' applet, it uses bt-adapter from the BlueZ suite in the background to manage the Bluetooth adapter. Because of this bug, it crashes and 'blueberry' is unable to use the Bluetooth.
Comment 1 Dimitar Milkov 2018-03-24 16:05:18 UTC
Created attachment 274909 [details]
lsusb

Note You need to log in before you can comment on or make changes to this bug.