FS#68749 - [linux] Bluetooth not working with rtl8822ce kernel 5.9.x

Attached to Project: Arch Linux
Opened by Adrian Pereira (apereirafernandez) - Thursday, 26 November 2020, 00:53 GMT
Last edited by Jan Alexander Steffens (heftig) - Saturday, 28 November 2020, 03:09 GMT
Task Type Bug Report
Category Kernel
Status Closed
Assigned To Jan Alexander Steffens (heftig)
Architecture All
Severity High
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 0
Private No

Details

Description:

During controller initialization, an LE Set RPA Timeout command is sent
to the controller if supported. However, the value checked to determine
if the command is supported is incorrect. Page 1921 of the Bluetooth
Core Spec v5.2 shows that bit 2 of octet 35 of the Supported_Commands
field corresponds to the LE Set RPA Timeout command, but currently
bit 6 of octet 35 is checked. This patch checks the correct value
instead.

This issue led to the error seen in the following btmon output during
initialization of an adapter (rtl8761b) and prevented initialization
from completing.

< HCI Command: LE Set Resolvable Private Address Timeout (0x08|0x002e) plen 2
Timeout: 900 seconds
> HCI Event: Command Complete (0x0e) plen 4
LE Set Resolvable Private Address Timeout (0x08|0x002e) ncmd 2
Status: Unsupported Remote Feature / Unsupported LMP Feature (0x1a)
= Close Index: 00:E0:4C:6B:E5:03

The error did not appear when running with this patch.

Signed-off-by: Edward Vear <edwardvear@gmail.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>

Additional info:

The Patch

https://marc.info/?l=linux-bluetooth&m=160378222632366&w=2

https://git.kernel.org/pub/scm/linux/kernel/git/bluetooth/bluetooth-next.git/commit/?id=7c66018139629bfd16fe09b982916cc6c814c8d6

https://git.kernel.org/pub/scm/linux/kernel/git/bluetooth/bluetooth-next.git/

Forum conversation

https://bbs.archlinux.org/viewtopic.php?id=259975

Steps to reproduce: rtl8822ce and other realtek cards with kernel 5.9.X
This task depends upon

Closed by  Jan Alexander Steffens (heftig)
Saturday, 28 November 2020, 03:09 GMT
Reason for closing:  Fixed
Additional comments about closing:  linux 5.9.11.arch2-1
Comment by Andreas Radke (AndyRTR) - Thursday, 26 November 2020, 06:49 GMT
Maybe it's worth here to apply this hardware fix. Otherwise it should take at least until 5.11 before the fix goes form bluetooth-next into the mainline kernel.
Comment by Mike Cloaked (mcloaked) - Thursday, 26 November 2020, 18:40 GMT
I have a kernel built with the patch included to test my Realtek rtl8822ce radio.

[mike@ryzen1 ~]$ uname -r
5.9.11-2-stable

All good and well - and the big test:

[mike@ryzen1 ~]$ sudo systemctl start bluetooth
[mike@ryzen1 ~]$ bluetoothctl
Agent registered
[bluetooth]# default-agent
Default agent request successful
[bluetooth]# power on
[CHG] Controller xx:xx:xx:xx:xx:xx Class: 0x003c0000
Changing power on succeeded
[CHG] Controller xx:xx:xx:xx:xx:xx Powered: yes
[bluetooth]#

So the BT radio now powers on, where previously it would not. After that I was able to pair and connect the bluetooth ear buds, and they work normally with audio. If the patch was included in arch kernel builds until it reaches the upstream released kernel tree, that would help all users running the same chipset to have bluetooth working much earlier.

Loading...