Bug 217812 - Bluetooth: hci0: unexpected cc 0x041a length: 7 > 1 on bluetooth scan (CSR chip)
Summary: Bluetooth: hci0: unexpected cc 0x041a length: 7 > 1 on bluetooth scan (CSR chip)
Status: NEW
Alias: None
Product: Drivers
Classification: Unclassified
Component: Bluetooth (show other bugs)
Hardware: All Linux
: P3 normal
Assignee: linux-bluetooth@vger.kernel.org
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2023-08-21 19:25 UTC by Georg Schwarz
Modified: 2023-08-22 07:01 UTC (History)
1 user (show)

See Also:
Kernel Version:
Subsystem:
Regression: No
Bisected commit-id:


Attachments

Description Georg Schwarz 2023-08-21 19:25:16 UTC
The bug occurs with the following USB bluetooth dongle:

https://fccid.io/SHP-BED009/Label/Label-Location-and-Sample-572556

USB ID 0x0a12 0x0001

identified by the kernel as

Bluetooth: hci0: CSR: Setting up dongle with HCI ver=3 rev=07a6; LMP ver=3 subver= 07a6; manufacturer=10

I opened up the dongle, and the chip has a CSR logo and the following inscription printed on it: 41B14 3A05U 549AE

I know that 0x0a12 0x0001 are often fake Chinese chips, but this one to the best of my knowledge is an original one (BT 2.0).
(and the kernel correctly does not identify it as a fake, so that's not the issue here).


Description of the bug:
When scanning for bluetooth devices (using Blueman's Search) any bluetooth device (e.g. phone, speaker, etc.) found is listed with its MAC only, not its name, unless that device has previously been paired with (and its data is cached in /var/lib/bluetooth/(adapter's MAC)/cache/, in which case the name is probably not queried).
In the system log the following entry is added on every search which yields at least one such "MAC-only" device:

Bluetooth: hci0: unexpected cc 0x041a length: 7 > 1

Needless to say the devices' names do resolve when scanned from other computers/phones (including from another Linux system running the same fresh Manjaro installation but featuring different BT hardware).

I have tested it on two different machines (with the above BT dongle) with numerous Linux distributions and kernels and bluez releases. I can reproduce it directly with a Manjaro or Xubuntu live/install image.
The above kernel message occurs with kernels 6.1.44, 6.4.9 and 6.5.0rc5.

None of the test machines are dual-boot, they are Linux-only.

With some much older installations (Xubuntu 16 or 18 for example), the BT names do not get resolved either (same behavior), but the syslog message is a different one:

Bluetooth: hci0: last event is not cmd complete (0x0f)

I suspect that it is still the same bug though, just a different message in older kernels.

In addition, I noticed the following which may or may not be related:
When booting up without the BT dongle attached and then plugging it in, the following message is written to syslog (before the kernel messages about the new BT device):

Bluetooth: hci0: unexpected event for opcode 0x0000

This is true for all the kernels I tried (at least the 6.X ones).

I initially opened an issue with Blueman (https://github.com/blueman-project/blueman/issues/2116), but I am convinced now that it is actually a driver (kernel) issue.

If I can provide further information or tests, please kindly let me know. Thanks.

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