2024-04-04 19:39:35

by Wren Turkal

[permalink] [raw]
Subject: QCA6390 bluetooth doesn't work after warm boot or disable/reenable

Hey there ath11k/bluetooth folks,

I am having a pretty major problem with QCA6930 for some time (maybe a
year or two). I have this bluetooth device:

72:00.0 Unassigned class [ff00]: Qualcomm Technologies, Inc QCA6390
Wireless Network Adapter

This device appears to be driven by the ath11k module and others. I hope
I am pinging the right lists.

I am using Fedora Rawhide. Fully updated yesterday. My uname reports this:

Linux braindead.localdomain
6.9.0-0.rc2.20240402git026e680b0a08.24.fc41.x86_64 #1 SMP
PREEMPT_DYNAMIC Tue Apr 2 17:51:18 UTC 2024 x86_64 GNU/Linux

My main bluetooth device is a Logitech MX 3 Mac mouse that uses
bluetooth. When bluetooth fails, so does the mouse. I have power cycle
my laptop when that happens. I'd love to help find a fix for this.

The problem is that I cannot disable and re-enable the bluetooth on my
system. Bluetooth also doesn't work after a warm boot. I have to power
cycle my laptop to recover bluetooth funcitonality. I have tried the
following:

* logging into KDE Plasma (bluetooth stops working)
* logging into GNOME (works on cold boot, fails on warm boot)

After logging into GNOME during a cold boot, I have also done "systemctl
restart bluetooth.service". I get these journal logs during the stop;

➜ bt_kernel_bug cat journal-stop-bluetooth-service.log
Apr 04 10:14:41 braindead.localdomain NetworkManager[1120]: <info>
[1712250881.7060] device (F0:5C:77:F2:60:FC): state change: disconnected
-> unmanaged (reason 'removed', sys-iface-state: 'removed')
Apr 04 10:14:41 braindead.localdomain systemd[1]: Starting
systemd-rfkill.service - Load/Save RF Kill Switch Status...
Apr 04 10:14:41 braindead.localdomain systemd[1]: Started
systemd-rfkill.service - Load/Save RF Kill Switch Status.
Apr 04 10:14:41 braindead.localdomain audit[1]: SERVICE_START pid=1
uid=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:init_t:s0
msg='unit=systemd-rfkill comm="systemd" exe="/usr/lib/systemd/systemd"
hostname=? addr=? terminal=? res=success'
Apr 04 10:14:46 braindead.localdomain systemd[1]:
systemd-rfkill.service: Deactivated successfully.
Apr 04 10:14:46 braindead.localdomain audit[1]: SERVICE_STOP pid=1 uid=0
auid=4294967295 ses=4294967295 subj=system_u:system_r:init_t:s0
msg='unit=systemd-rfkill comm="systemd" exe="/usr/lib/systemd/systemd"
hostname=? addr=? terminal=? res=success'

I get these journal logs during start:

Apr 04 10:15:05 braindead.localdomain kernel: Bluetooth: hci0: setting
up ROME/QCA6390
Apr 04 10:15:05 braindead.localdomain systemd[1]: Starting
systemd-rfkill.service - Load/Save RF Kill Switch Status...
Apr 04 10:15:05 braindead.localdomain systemd[1]: Started
systemd-rfkill.service - Load/Save RF Kill Switch Status.
Apr 04 10:15:05 braindead.localdomain audit[1]: SERVICE_START pid=1
uid=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:init_t:s0
msg='unit=systemd-rfkill comm="systemd" exe="/usr/lib/systemd/systemd"
hostname=? addr=? terminal=? res=success'
Apr 04 10:15:05 braindead.localdomain kernel: Bluetooth: hci0: QCA
Product ID :0x00000010
Apr 04 10:15:05 braindead.localdomain kernel: Bluetooth: hci0: QCA SOC
Version :0x400a0200
Apr 04 10:15:05 braindead.localdomain kernel: Bluetooth: hci0: QCA ROM
Version :0x00000200
Apr 04 10:15:05 braindead.localdomain kernel: Bluetooth: hci0: QCA Patch
Version:0x00003ac0
Apr 04 10:15:05 braindead.localdomain kernel: Bluetooth: hci0: QCA
controller version 0x02000200
Apr 04 10:15:05 braindead.localdomain kernel: Bluetooth: hci0: QCA
Downloading qca/htbtfw20.tlv
Apr 04 10:15:06 braindead.localdomain kernel: Bluetooth: hci0: QCA
Failed to send TLV segment (-110)
Apr 04 10:15:06 braindead.localdomain kernel: Bluetooth: hci0: QCA
Failed to download patch (-110)
Apr 04 10:15:06 braindead.localdomain kernel: Bluetooth: hci0: Retry BT
power ON:0
Apr 04 10:15:08 braindead.localdomain kernel: Bluetooth: hci0: command
0xfc00 tx timeout
Apr 04 10:15:08 braindead.localdomain kernel: Bluetooth: hci0: Reading
QCA version information failed (-110)
Apr 04 10:15:08 braindead.localdomain kernel: Bluetooth: hci0: Retry BT
power ON:1
Apr 04 10:15:10 braindead.localdomain systemd[1]:
systemd-rfkill.service: Deactivated successfully.
Apr 04 10:15:10 braindead.localdomain audit[1]: SERVICE_STOP pid=1 uid=0
auid=4294967295 ses=4294967295 subj=system_u:system_r:init_t:s0
msg='unit=systemd-rfkill comm="systemd" exe="/usr/lib/systemd/systemd"
hostname=? addr=? terminal=? res=success'
Apr 04 10:15:10 braindead.localdomain kernel: Bluetooth: hci0: command
0xfc00 tx timeout
Apr 04 10:15:10 braindead.localdomain kernel: Bluetooth: hci0: Reading
QCA version information failed (-110)
Apr 04 10:15:10 braindead.localdomain kernel: Bluetooth: hci0: Retry BT
power ON:2
Apr 04 10:15:13 braindead.localdomain bluetoothd[986]: Failed to set
mode: Authentication Failed (0x05)
Apr 04 10:15:13 braindead.localdomain kernel: Bluetooth: hci0: command
0xfc00 tx timeout
Apr 04 10:15:13 braindead.localdomain kernel: Bluetooth: hci0: Reading
QCA version information failed (-110)
Apr 04 10:15:15 braindead.localdomain chronyd[1065]: Selected source
204.17.205.8 (2.fedora.pool.ntp.org)
Apr 04 10:15:22 braindead.localdomain systemd[1687]: Created slice
background.slice - User Background Tasks Slice.
Apr 04 10:15:22 braindead.localdomain systemd[1687]: Starting
systemd-tmpfiles-clean.service - Cleanup of User's Temporary Files and
Directories...
Apr 04 10:15:22 braindead.localdomain systemd[1687]: Finished
systemd-tmpfiles-clean.service - Cleanup of User's Temporary Files and
Directories.
Apr 04 10:15:38 braindead.localdomain audit: BPF prog-id=86 op=LOAD
Apr 04 10:15:38 braindead.localdomain systemd[1]: Starting
plocate-updatedb.service - Update the plocate database...
Apr 04 10:15:41 braindead.localdomain systemd[1687]: Started
vte-spawn-21527424-cb2d-479f-af17-22251e2b37a0.scope - VTE child process
5144 launched by gnome-terminal-server process 4668.
Apr 04 10:15:53 braindead.localdomain systemd[1]:
plocate-updatedb.service: Deactivated successfully.
Apr 04 10:15:53 braindead.localdomain systemd[1]: Finished
plocate-updatedb.service - Update the plocate database.
Apr 04 10:15:53 braindead.localdomain systemd[1]:
plocate-updatedb.service: Consumed 6.802s CPU time.
Apr 04 10:15:53 braindead.localdomain audit[1]: SERVICE_START pid=1
uid=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:init_t:s0
msg='unit=plocate-updatedb comm="systemd" exe="/usr/lib/systemd/systemd"
hostname=? addr=? terminal=? res=success'
Apr 04 10:15:53 braindead.localdomain audit[1]: SERVICE_STOP pid=1 uid=0
auid=4294967295 ses=4294967295 subj=system_u:system_r:init_t:s0
msg='unit=plocate-updatedb comm="systemd" exe="/usr/lib/systemd/systemd"
hostname=? addr=? terminal=? res=success'
Apr 04 10:15:54 braindead.localdomain audit: BPF prog-id=86 op=UNLOAD
Apr 04 10:16:13 braindead.localdomain baloo_file_extractor[5251]:
kf.idletime: Could not find any system poller plugin
Apr 04 10:16:13 braindead.localdomain baloo_file_extractor[5251]:
qt.core.qobject.connect: QObject::connect(KAbstractIdleTimePoller,
KIdleTime): invalid nullptr parameter
Apr 04 10:16:13 braindead.localdomain baloo_file_extractor[5251]:
qt.core.qobject.connect: QObject::connect(KAbstractIdleTimePoller,
KIdleTime): invalid nullptr parameter

There's a bunch of errors in those logs starting with these two
seemingly important lines:

Apr 04 10:15:06 braindead.localdomain kernel: Bluetooth: hci0: QCA
Failed to send TLV segment (-110)
Apr 04 10:15:06 braindead.localdomain kernel: Bluetooth: hci0: QCA
Failed to download patch (-110)

FWIW, I get similar logs after logging into KDE Plasma. I also get
similar logs after a warm boot.

This appears to be some kind of bug in the initialization of the
hardware. Is there any additional information I can provide to help
troubleshoot this problem.

wt
--
You're more amazing than you think!


2024-04-05 05:30:23

by Wren Turkal

[permalink] [raw]
Subject: QCA6390 bluetooth doesn't work after warm boot or disable/reenable


Hey there ath11k/bluetooth folks,

I am having a pretty major problem with QCA6930 for some time (maybe a
year or two). I have this bluetooth device:

72:00.0 Unassigned class [ff00]: Qualcomm Technologies, Inc QCA6390
Wireless Network Adapter

This device appears to be driven by the ath11k module and others. I hope
I am pinging the right lists.

I am using Fedora Rawhide. Fully updated yesterday. My uname reports this:

Linux braindead.localdomain
6.9.0-0.rc2.20240402git026e680b0a08.24.fc41.x86_64 #1 SMP
PREEMPT_DYNAMIC Tue Apr 2 17:51:18 UTC 2024 x86_64 GNU/Linux

My main bluetooth device is a Logitech MX 3 Mac mouse that uses
bluetooth. When bluetooth fails, so does the mouse. I have power cycle
my laptop when that happens. I'd love to help find a fix for this.

The problem is that I cannot disable and re-enable the bluetooth on my
system. Bluetooth also doesn't work after a warm boot. I have to power
cycle my laptop to recover bluetooth funcitonality. I have tried the
following:

* logging into KDE Plasma (bluetooth stops working)
* logging into GNOME (works on cold boot, fails on warm boot)

After logging into GNOME during a cold boot, I have also done "systemctl
restart bluetooth.service". I get these journal logs during the stop;

➜ bt_kernel_bug cat journal-stop-bluetooth-service.log
Apr 04 10:14:41 braindead.localdomain NetworkManager[1120]: <info>
[1712250881.7060] device (F0:5C:77:F2:60:FC): state change: disconnected
-> unmanaged (reason 'removed', sys-iface-state: 'removed')
Apr 04 10:14:41 braindead.localdomain systemd[1]: Starting
systemd-rfkill.service - Load/Save RF Kill Switch Status...
Apr 04 10:14:41 braindead.localdomain systemd[1]: Started
systemd-rfkill.service - Load/Save RF Kill Switch Status.
Apr 04 10:14:41 braindead.localdomain audit[1]: SERVICE_START pid=1
uid=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:init_t:s0
msg='unit=systemd-rfkill comm="systemd" exe="/usr/lib/systemd/systemd"
hostname=? addr=? terminal=? res=success'
Apr 04 10:14:46 braindead.localdomain systemd[1]:
systemd-rfkill.service: Deactivated successfully.
Apr 04 10:14:46 braindead.localdomain audit[1]: SERVICE_STOP pid=1 uid=0
auid=4294967295 ses=4294967295 subj=system_u:system_r:init_t:s0
msg='unit=systemd-rfkill comm="systemd" exe="/usr/lib/systemd/systemd"
hostname=? addr=? terminal=? res=success'

I get these journal logs during start:

Apr 04 10:15:05 braindead.localdomain kernel: Bluetooth: hci0: setting
up ROME/QCA6390
Apr 04 10:15:05 braindead.localdomain systemd[1]: Starting
systemd-rfkill.service - Load/Save RF Kill Switch Status...
Apr 04 10:15:05 braindead.localdomain systemd[1]: Started
systemd-rfkill.service - Load/Save RF Kill Switch Status.
Apr 04 10:15:05 braindead.localdomain audit[1]: SERVICE_START pid=1
uid=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:init_t:s0
msg='unit=systemd-rfkill comm="systemd" exe="/usr/lib/systemd/systemd"
hostname=? addr=? terminal=? res=success'
Apr 04 10:15:05 braindead.localdomain kernel: Bluetooth: hci0: QCA
Product ID :0x00000010
Apr 04 10:15:05 braindead.localdomain kernel: Bluetooth: hci0: QCA SOC
Version :0x400a0200
Apr 04 10:15:05 braindead.localdomain kernel: Bluetooth: hci0: QCA ROM
Version :0x00000200
Apr 04 10:15:05 braindead.localdomain kernel: Bluetooth: hci0: QCA Patch
Version:0x00003ac0
Apr 04 10:15:05 braindead.localdomain kernel: Bluetooth: hci0: QCA
controller version 0x02000200
Apr 04 10:15:05 braindead.localdomain kernel: Bluetooth: hci0: QCA
Downloading qca/htbtfw20.tlv
Apr 04 10:15:06 braindead.localdomain kernel: Bluetooth: hci0: QCA
Failed to send TLV segment (-110)
Apr 04 10:15:06 braindead.localdomain kernel: Bluetooth: hci0: QCA
Failed to download patch (-110)
Apr 04 10:15:06 braindead.localdomain kernel: Bluetooth: hci0: Retry BT
power ON:0
Apr 04 10:15:08 braindead.localdomain kernel: Bluetooth: hci0: command
0xfc00 tx timeout
Apr 04 10:15:08 braindead.localdomain kernel: Bluetooth: hci0: Reading
QCA version information failed (-110)
Apr 04 10:15:08 braindead.localdomain kernel: Bluetooth: hci0: Retry BT
power ON:1
Apr 04 10:15:10 braindead.localdomain systemd[1]:
systemd-rfkill.service: Deactivated successfully.
Apr 04 10:15:10 braindead.localdomain audit[1]: SERVICE_STOP pid=1 uid=0
auid=4294967295 ses=4294967295 subj=system_u:system_r:init_t:s0
msg='unit=systemd-rfkill comm="systemd" exe="/usr/lib/systemd/systemd"
hostname=? addr=? terminal=? res=success'
Apr 04 10:15:10 braindead.localdomain kernel: Bluetooth: hci0: command
0xfc00 tx timeout
Apr 04 10:15:10 braindead.localdomain kernel: Bluetooth: hci0: Reading
QCA version information failed (-110)
Apr 04 10:15:10 braindead.localdomain kernel: Bluetooth: hci0: Retry BT
power ON:2
Apr 04 10:15:13 braindead.localdomain bluetoothd[986]: Failed to set
mode: Authentication Failed (0x05)
Apr 04 10:15:13 braindead.localdomain kernel: Bluetooth: hci0: command
0xfc00 tx timeout
Apr 04 10:15:13 braindead.localdomain kernel: Bluetooth: hci0: Reading
QCA version information failed (-110)
Apr 04 10:15:15 braindead.localdomain chronyd[1065]: Selected source
204.17.205.8 (2.fedora.pool.ntp.org)
Apr 04 10:15:22 braindead.localdomain systemd[1687]: Created slice
background.slice - User Background Tasks Slice.
Apr 04 10:15:22 braindead.localdomain systemd[1687]: Starting
systemd-tmpfiles-clean.service - Cleanup of User's Temporary Files and
Directories...
Apr 04 10:15:22 braindead.localdomain systemd[1687]: Finished
systemd-tmpfiles-clean.service - Cleanup of User's Temporary Files and
Directories.
Apr 04 10:15:38 braindead.localdomain audit: BPF prog-id=86 op=LOAD
Apr 04 10:15:38 braindead.localdomain systemd[1]: Starting
plocate-updatedb.service - Update the plocate database...
Apr 04 10:15:41 braindead.localdomain systemd[1687]: Started
vte-spawn-21527424-cb2d-479f-af17-22251e2b37a0.scope - VTE child process
5144 launched by gnome-terminal-server process 4668.
Apr 04 10:15:53 braindead.localdomain systemd[1]:
plocate-updatedb.service: Deactivated successfully.
Apr 04 10:15:53 braindead.localdomain systemd[1]: Finished
plocate-updatedb.service - Update the plocate database.
Apr 04 10:15:53 braindead.localdomain systemd[1]:
plocate-updatedb.service: Consumed 6.802s CPU time.
Apr 04 10:15:53 braindead.localdomain audit[1]: SERVICE_START pid=1
uid=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:init_t:s0
msg='unit=plocate-updatedb comm="systemd" exe="/usr/lib/systemd/systemd"
hostname=? addr=? terminal=? res=success'
Apr 04 10:15:53 braindead.localdomain audit[1]: SERVICE_STOP pid=1 uid=0
auid=4294967295 ses=4294967295 subj=system_u:system_r:init_t:s0
msg='unit=plocate-updatedb comm="systemd" exe="/usr/lib/systemd/systemd"
hostname=? addr=? terminal=? res=success'
Apr 04 10:15:54 braindead.localdomain audit: BPF prog-id=86 op=UNLOAD
Apr 04 10:16:13 braindead.localdomain baloo_file_extractor[5251]:
kf.idletime: Could not find any system poller plugin
Apr 04 10:16:13 braindead.localdomain baloo_file_extractor[5251]:
qt.core.qobject.connect: QObject::connect(KAbstractIdleTimePoller,
KIdleTime): invalid nullptr parameter
Apr 04 10:16:13 braindead.localdomain baloo_file_extractor[5251]:
qt.core.qobject.connect: QObject::connect(KAbstractIdleTimePoller,
KIdleTime): invalid nullptr parameter

There's a bunch of errors in those logs starting with these two
seemingly important lines:

Apr 04 10:15:06 braindead.localdomain kernel: Bluetooth: hci0: QCA
Failed to send TLV segment (-110)
Apr 04 10:15:06 braindead.localdomain kernel: Bluetooth: hci0: QCA
Failed to download patch (-110)

FWIW, I get similar logs after logging into KDE Plasma. I also get
similar logs after a warm boot.

This appears to be some kind of bug in the initialization of the
hardware. Is there any additional information I can provide to help
troubleshoot this problem.

wt
--
You're more amazing than you think!

2024-04-06 20:17:36

by Wren Turkal

[permalink] [raw]
Subject: Re: QCA6390 bluetooth doesn't work after warm boot or disable/reenable

Sorry for the double send on the original message. I am still hoping to
get some help. I have added additional info below.

On 4/4/24 12:14 PM, Wren Turkal wrote:
> Hey there ath11k/bluetooth folks,
>
> I am having a pretty major problem with QCA6930 for some time (maybe a
> year or two). I have this bluetooth device:
>
> 72:00.0 Unassigned class [ff00]: Qualcomm Technologies, Inc QCA6390
> Wireless Network Adapter
>
> This device appears to be driven by the ath11k module and others. I hope
> I am pinging the right lists.
>
> I am using Fedora Rawhide. Fully updated yesterday. My uname reports this:
>
> Linux braindead.localdomain
> 6.9.0-0.rc2.20240402git026e680b0a08.24.fc41.x86_64 #1 SMP
> PREEMPT_DYNAMIC Tue Apr  2 17:51:18 UTC 2024 x86_64 GNU/Linux

Updated today. Here's the new uname:

Linux braindead.localdomain
6.9.0-0.rc2.20240405git8cb4a9a82b21.27.fc41.x86_64 #1 SMP
PREEMPT_DYNAMIC Fri Apr 5 16:48:07 UTC 2024 x86_64 GNU/Linux

I also noticed a new version of bluez. Here is the RPM package version:
bluez-5.73-3.fc41.x86_64

> My main bluetooth device is  a Logitech MX 3 Mac mouse that uses
> bluetooth. When bluetooth fails, so does the mouse. I have power cycle
> my laptop when that happens. I'd love to help find a fix for this.
>
> The problem is that I cannot disable and re-enable the bluetooth on my
> system. Bluetooth also doesn't work after a warm boot. I have to power
> cycle my laptop to recover bluetooth funcitonality. I have tried the
> following:
>
> * logging into KDE Plasma (bluetooth stops working)
> * logging into GNOME (works on cold boot, fails on warm boot)

I did notice that the mouse seems to work in Plasma until a few sec
after I see the background image appears. I suspect that Plasma is
disabling and reenabling the bluetooth where Gnome does not do that.

> After logging into GNOME during a cold boot, I have also done "systemctl
> restart bluetooth.service". I get these journal logs during the stop;
>
> ➜  bt_kernel_bug cat journal-stop-bluetooth-service.log
> Apr 04 10:14:41 braindead.localdomain NetworkManager[1120]: <info>
> [1712250881.7060] device (F0:5C:77:F2:60:FC): state change: disconnected
> -> unmanaged (reason 'removed', sys-iface-state: 'removed')
> Apr 04 10:14:41 braindead.localdomain systemd[1]: Starting
> systemd-rfkill.service - Load/Save RF Kill Switch Status...
> Apr 04 10:14:41 braindead.localdomain systemd[1]: Started
> systemd-rfkill.service - Load/Save RF Kill Switch Status.
> Apr 04 10:14:41 braindead.localdomain audit[1]: SERVICE_START pid=1
> uid=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:init_t:s0
> msg='unit=systemd-rfkill comm="systemd" exe="/usr/lib/systemd/systemd"
> hostname=? addr=? terminal=? res=success'
> Apr 04 10:14:46 braindead.localdomain systemd[1]:
> systemd-rfkill.service: Deactivated successfully.
> Apr 04 10:14:46 braindead.localdomain audit[1]: SERVICE_STOP pid=1 uid=0
> auid=4294967295 ses=4294967295 subj=system_u:system_r:init_t:s0
> msg='unit=systemd-rfkill comm="systemd" exe="/usr/lib/systemd/systemd"
> hostname=? addr=? terminal=? res=success'
>
> I get these journal logs during start:
>
> Apr 04 10:15:05 braindead.localdomain kernel: Bluetooth: hci0: setting
> up ROME/QCA6390
> Apr 04 10:15:05 braindead.localdomain systemd[1]: Starting
> systemd-rfkill.service - Load/Save RF Kill Switch Status...
> Apr 04 10:15:05 braindead.localdomain systemd[1]: Started
> systemd-rfkill.service - Load/Save RF Kill Switch Status.
> Apr 04 10:15:05 braindead.localdomain audit[1]: SERVICE_START pid=1
> uid=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:init_t:s0
> msg='unit=systemd-rfkill comm="systemd" exe="/usr/lib/systemd/systemd"
> hostname=? addr=? terminal=? res=success'
> Apr 04 10:15:05 braindead.localdomain kernel: Bluetooth: hci0: QCA
> Product ID   :0x00000010
> Apr 04 10:15:05 braindead.localdomain kernel: Bluetooth: hci0: QCA SOC
> Version  :0x400a0200
> Apr 04 10:15:05 braindead.localdomain kernel: Bluetooth: hci0: QCA ROM
> Version  :0x00000200
> Apr 04 10:15:05 braindead.localdomain kernel: Bluetooth: hci0: QCA Patch
> Version:0x00003ac0
> Apr 04 10:15:05 braindead.localdomain kernel: Bluetooth: hci0: QCA
> controller version 0x02000200
> Apr 04 10:15:05 braindead.localdomain kernel: Bluetooth: hci0: QCA
> Downloading qca/htbtfw20.tlv
> Apr 04 10:15:06 braindead.localdomain kernel: Bluetooth: hci0: QCA
> Failed to send TLV segment (-110)
> Apr 04 10:15:06 braindead.localdomain kernel: Bluetooth: hci0: QCA
> Failed to download patch (-110)
> Apr 04 10:15:06 braindead.localdomain kernel: Bluetooth: hci0: Retry BT
> power ON:0
> Apr 04 10:15:08 braindead.localdomain kernel: Bluetooth: hci0: command
> 0xfc00 tx timeout
> Apr 04 10:15:08 braindead.localdomain kernel: Bluetooth: hci0: Reading
> QCA version information failed (-110)
> Apr 04 10:15:08 braindead.localdomain kernel: Bluetooth: hci0: Retry BT
> power ON:1
> Apr 04 10:15:10 braindead.localdomain systemd[1]:
> systemd-rfkill.service: Deactivated successfully.
> Apr 04 10:15:10 braindead.localdomain audit[1]: SERVICE_STOP pid=1 uid=0
> auid=4294967295 ses=4294967295 subj=system_u:system_r:init_t:s0
> msg='unit=systemd-rfkill comm="systemd" exe="/usr/lib/systemd/systemd"
> hostname=? addr=? terminal=? res=success'
> Apr 04 10:15:10 braindead.localdomain kernel: Bluetooth: hci0: command
> 0xfc00 tx timeout
> Apr 04 10:15:10 braindead.localdomain kernel: Bluetooth: hci0: Reading
> QCA version information failed (-110)
> Apr 04 10:15:10 braindead.localdomain kernel: Bluetooth: hci0: Retry BT
> power ON:2
> Apr 04 10:15:13 braindead.localdomain bluetoothd[986]: Failed to set
> mode: Authentication Failed (0x05)
> Apr 04 10:15:13 braindead.localdomain kernel: Bluetooth: hci0: command
> 0xfc00 tx timeout
> Apr 04 10:15:13 braindead.localdomain kernel: Bluetooth: hci0: Reading
> QCA version information failed (-110)
> Apr 04 10:15:15 braindead.localdomain chronyd[1065]: Selected source
> 204.17.205.8 (2.fedora.pool.ntp.org)
> Apr 04 10:15:22 braindead.localdomain systemd[1687]: Created slice
> background.slice - User Background Tasks Slice.
> Apr 04 10:15:22 braindead.localdomain systemd[1687]: Starting
> systemd-tmpfiles-clean.service - Cleanup of User's Temporary Files and
> Directories...
> Apr 04 10:15:22 braindead.localdomain systemd[1687]: Finished
> systemd-tmpfiles-clean.service - Cleanup of User's Temporary Files and
> Directories.
> Apr 04 10:15:38 braindead.localdomain audit: BPF prog-id=86 op=LOAD
> Apr 04 10:15:38 braindead.localdomain systemd[1]: Starting
> plocate-updatedb.service - Update the plocate database...
> Apr 04 10:15:41 braindead.localdomain systemd[1687]: Started
> vte-spawn-21527424-cb2d-479f-af17-22251e2b37a0.scope - VTE child process
> 5144 launched by gnome-terminal-server process 4668.
> Apr 04 10:15:53 braindead.localdomain systemd[1]:
> plocate-updatedb.service: Deactivated successfully.
> Apr 04 10:15:53 braindead.localdomain systemd[1]: Finished
> plocate-updatedb.service - Update the plocate database.
> Apr 04 10:15:53 braindead.localdomain systemd[1]:
> plocate-updatedb.service: Consumed 6.802s CPU time.
> Apr 04 10:15:53 braindead.localdomain audit[1]: SERVICE_START pid=1
> uid=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:init_t:s0
> msg='unit=plocate-updatedb comm="systemd" exe="/usr/lib/systemd/systemd"
> hostname=? addr=? terminal=? res=success'
> Apr 04 10:15:53 braindead.localdomain audit[1]: SERVICE_STOP pid=1 uid=0
> auid=4294967295 ses=4294967295 subj=system_u:system_r:init_t:s0
> msg='unit=plocate-updatedb comm="systemd" exe="/usr/lib/systemd/systemd"
> hostname=? addr=? terminal=? res=success'
> Apr 04 10:15:54 braindead.localdomain audit: BPF prog-id=86 op=UNLOAD
> Apr 04 10:16:13 braindead.localdomain baloo_file_extractor[5251]:
> kf.idletime: Could not find any system poller plugin
> Apr 04 10:16:13 braindead.localdomain baloo_file_extractor[5251]:
> qt.core.qobject.connect: QObject::connect(KAbstractIdleTimePoller,
> KIdleTime): invalid nullptr parameter
> Apr 04 10:16:13 braindead.localdomain baloo_file_extractor[5251]:
> qt.core.qobject.connect: QObject::connect(KAbstractIdleTimePoller,
> KIdleTime): invalid nullptr parameter
>
> There's a bunch of errors in those logs starting with these two
> seemingly important lines:
>
> Apr 04 10:15:06 braindead.localdomain kernel: Bluetooth: hci0: QCA
> Failed to send TLV segment (-110)
> Apr 04 10:15:06 braindead.localdomain kernel: Bluetooth: hci0: QCA
> Failed to download patch (-110)

Logs are mostly unchanges when restarting the bluetooth service after a
cold boot with the bluetooth originally working.

> FWIW, I get similar logs after logging into KDE Plasma. I also get
> similar logs after a warm boot.
>
> This appears to be some kind of bug in the initialization of the
> hardware. Is there any additional information I can provide to help
> troubleshoot this problem.

I will also say that the bluetooth appears to work throught a
suspend/resume cycle as long as I don't restart the bluetooth service.

Oh, and my laptop is a Dell 9310 if that helps.

Is there any other info I could collect that might be useful?

I'm pretty new to troubleshooting a problem like this and would be happy
to have any advice anyone might want to share.

Thanks,
wt

--
You're more amazing than you think!

2024-04-06 20:28:28

by Wren Turkal

[permalink] [raw]
Subject: Re: QCA6390 bluetooth doesn't work after warm boot or disable/reenable

+Kalle Valo since you have the same laptop

On 4/6/24 1:16 PM, Wren Turkal wrote:
> Sorry for the double send on the original message. I am still hoping to
> get some help. I have added additional info below.
>
> On 4/4/24 12:14 PM, Wren Turkal wrote:
>> Hey there ath11k/bluetooth folks,
>>
>> I am having a pretty major problem with QCA6930 for some time (maybe a
>> year or two). I have this bluetooth device:
>>
>> 72:00.0 Unassigned class [ff00]: Qualcomm Technologies, Inc QCA6390
>> Wireless Network Adapter
>>
>> This device appears to be driven by the ath11k module and others. I
>> hope I am pinging the right lists.
>>
>> I am using Fedora Rawhide. Fully updated yesterday. My uname reports
>> this:
>>
>> Linux braindead.localdomain
>> 6.9.0-0.rc2.20240402git026e680b0a08.24.fc41.x86_64 #1 SMP
>> PREEMPT_DYNAMIC Tue Apr  2 17:51:18 UTC 2024 x86_64 GNU/Linux
>
> Updated today. Here's the new uname:
>
> Linux braindead.localdomain
> 6.9.0-0.rc2.20240405git8cb4a9a82b21.27.fc41.x86_64 #1 SMP
> PREEMPT_DYNAMIC Fri Apr  5 16:48:07 UTC 2024 x86_64 GNU/Linux
>
> I also noticed a new version of bluez. Here is the RPM package version:
> bluez-5.73-3.fc41.x86_64
>
>> My main bluetooth device is  a Logitech MX 3 Mac mouse that uses
>> bluetooth. When bluetooth fails, so does the mouse. I have power cycle
>> my laptop when that happens. I'd love to help find a fix for this.
>>
>> The problem is that I cannot disable and re-enable the bluetooth on my
>> system. Bluetooth also doesn't work after a warm boot. I have to power
>> cycle my laptop to recover bluetooth funcitonality. I have tried the
>> following:
>>
>> * logging into KDE Plasma (bluetooth stops working)
>> * logging into GNOME (works on cold boot, fails on warm boot)
>
> I did notice that the mouse seems to work in Plasma until a few sec
> after I see the background image appears. I suspect that Plasma is
> disabling and reenabling the bluetooth where Gnome does not do that.
>
>> After logging into GNOME during a cold boot, I have also done
>> "systemctl restart bluetooth.service". I get these journal logs during
>> the stop;
>>
>> ➜  bt_kernel_bug cat journal-stop-bluetooth-service.log
>> Apr 04 10:14:41 braindead.localdomain NetworkManager[1120]: <info>
>> [1712250881.7060] device (F0:5C:77:F2:60:FC): state change:
>> disconnected -> unmanaged (reason 'removed', sys-iface-state: 'removed')
>> Apr 04 10:14:41 braindead.localdomain systemd[1]: Starting
>> systemd-rfkill.service - Load/Save RF Kill Switch Status...
>> Apr 04 10:14:41 braindead.localdomain systemd[1]: Started
>> systemd-rfkill.service - Load/Save RF Kill Switch Status.
>> Apr 04 10:14:41 braindead.localdomain audit[1]: SERVICE_START pid=1
>> uid=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:init_t:s0
>> msg='unit=systemd-rfkill comm="systemd" exe="/usr/lib/systemd/systemd"
>> hostname=? addr=? terminal=? res=success'
>> Apr 04 10:14:46 braindead.localdomain systemd[1]:
>> systemd-rfkill.service: Deactivated successfully.
>> Apr 04 10:14:46 braindead.localdomain audit[1]: SERVICE_STOP pid=1
>> uid=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:init_t:s0
>> msg='unit=systemd-rfkill comm="systemd" exe="/usr/lib/systemd/systemd"
>> hostname=? addr=? terminal=? res=success'
>>
>> I get these journal logs during start:
>>
>> Apr 04 10:15:05 braindead.localdomain kernel: Bluetooth: hci0: setting
>> up ROME/QCA6390
>> Apr 04 10:15:05 braindead.localdomain systemd[1]: Starting
>> systemd-rfkill.service - Load/Save RF Kill Switch Status...
>> Apr 04 10:15:05 braindead.localdomain systemd[1]: Started
>> systemd-rfkill.service - Load/Save RF Kill Switch Status.
>> Apr 04 10:15:05 braindead.localdomain audit[1]: SERVICE_START pid=1
>> uid=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:init_t:s0
>> msg='unit=systemd-rfkill comm="systemd" exe="/usr/lib/systemd/systemd"
>> hostname=? addr=? terminal=? res=success'
>> Apr 04 10:15:05 braindead.localdomain kernel: Bluetooth: hci0: QCA
>> Product ID   :0x00000010
>> Apr 04 10:15:05 braindead.localdomain kernel: Bluetooth: hci0: QCA SOC
>> Version  :0x400a0200
>> Apr 04 10:15:05 braindead.localdomain kernel: Bluetooth: hci0: QCA ROM
>> Version  :0x00000200
>> Apr 04 10:15:05 braindead.localdomain kernel: Bluetooth: hci0: QCA
>> Patch Version:0x00003ac0
>> Apr 04 10:15:05 braindead.localdomain kernel: Bluetooth: hci0: QCA
>> controller version 0x02000200
>> Apr 04 10:15:05 braindead.localdomain kernel: Bluetooth: hci0: QCA
>> Downloading qca/htbtfw20.tlv
>> Apr 04 10:15:06 braindead.localdomain kernel: Bluetooth: hci0: QCA
>> Failed to send TLV segment (-110)
>> Apr 04 10:15:06 braindead.localdomain kernel: Bluetooth: hci0: QCA
>> Failed to download patch (-110)
>> Apr 04 10:15:06 braindead.localdomain kernel: Bluetooth: hci0: Retry
>> BT power ON:0
>> Apr 04 10:15:08 braindead.localdomain kernel: Bluetooth: hci0: command
>> 0xfc00 tx timeout
>> Apr 04 10:15:08 braindead.localdomain kernel: Bluetooth: hci0: Reading
>> QCA version information failed (-110)
>> Apr 04 10:15:08 braindead.localdomain kernel: Bluetooth: hci0: Retry
>> BT power ON:1
>> Apr 04 10:15:10 braindead.localdomain systemd[1]:
>> systemd-rfkill.service: Deactivated successfully.
>> Apr 04 10:15:10 braindead.localdomain audit[1]: SERVICE_STOP pid=1
>> uid=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:init_t:s0
>> msg='unit=systemd-rfkill comm="systemd" exe="/usr/lib/systemd/systemd"
>> hostname=? addr=? terminal=? res=success'
>> Apr 04 10:15:10 braindead.localdomain kernel: Bluetooth: hci0: command
>> 0xfc00 tx timeout
>> Apr 04 10:15:10 braindead.localdomain kernel: Bluetooth: hci0: Reading
>> QCA version information failed (-110)
>> Apr 04 10:15:10 braindead.localdomain kernel: Bluetooth: hci0: Retry
>> BT power ON:2
>> Apr 04 10:15:13 braindead.localdomain bluetoothd[986]: Failed to set
>> mode: Authentication Failed (0x05)
>> Apr 04 10:15:13 braindead.localdomain kernel: Bluetooth: hci0: command
>> 0xfc00 tx timeout
>> Apr 04 10:15:13 braindead.localdomain kernel: Bluetooth: hci0: Reading
>> QCA version information failed (-110)
>> Apr 04 10:15:15 braindead.localdomain chronyd[1065]: Selected source
>> 204.17.205.8 (2.fedora.pool.ntp.org)
>> Apr 04 10:15:22 braindead.localdomain systemd[1687]: Created slice
>> background.slice - User Background Tasks Slice.
>> Apr 04 10:15:22 braindead.localdomain systemd[1687]: Starting
>> systemd-tmpfiles-clean.service - Cleanup of User's Temporary Files and
>> Directories...
>> Apr 04 10:15:22 braindead.localdomain systemd[1687]: Finished
>> systemd-tmpfiles-clean.service - Cleanup of User's Temporary Files and
>> Directories.
>> Apr 04 10:15:38 braindead.localdomain audit: BPF prog-id=86 op=LOAD
>> Apr 04 10:15:38 braindead.localdomain systemd[1]: Starting
>> plocate-updatedb.service - Update the plocate database...
>> Apr 04 10:15:41 braindead.localdomain systemd[1687]: Started
>> vte-spawn-21527424-cb2d-479f-af17-22251e2b37a0.scope - VTE child
>> process 5144 launched by gnome-terminal-server process 4668.
>> Apr 04 10:15:53 braindead.localdomain systemd[1]:
>> plocate-updatedb.service: Deactivated successfully.
>> Apr 04 10:15:53 braindead.localdomain systemd[1]: Finished
>> plocate-updatedb.service - Update the plocate database.
>> Apr 04 10:15:53 braindead.localdomain systemd[1]:
>> plocate-updatedb.service: Consumed 6.802s CPU time.
>> Apr 04 10:15:53 braindead.localdomain audit[1]: SERVICE_START pid=1
>> uid=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:init_t:s0
>> msg='unit=plocate-updatedb comm="systemd"
>> exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'
>> Apr 04 10:15:53 braindead.localdomain audit[1]: SERVICE_STOP pid=1
>> uid=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:init_t:s0
>> msg='unit=plocate-updatedb comm="systemd"
>> exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'
>> Apr 04 10:15:54 braindead.localdomain audit: BPF prog-id=86 op=UNLOAD
>> Apr 04 10:16:13 braindead.localdomain baloo_file_extractor[5251]:
>> kf.idletime: Could not find any system poller plugin
>> Apr 04 10:16:13 braindead.localdomain baloo_file_extractor[5251]:
>> qt.core.qobject.connect: QObject::connect(KAbstractIdleTimePoller,
>> KIdleTime): invalid nullptr parameter
>> Apr 04 10:16:13 braindead.localdomain baloo_file_extractor[5251]:
>> qt.core.qobject.connect: QObject::connect(KAbstractIdleTimePoller,
>> KIdleTime): invalid nullptr parameter
>>
>> There's a bunch of errors in those logs starting with these two
>> seemingly important lines:
>>
>> Apr 04 10:15:06 braindead.localdomain kernel: Bluetooth: hci0: QCA
>> Failed to send TLV segment (-110)
>> Apr 04 10:15:06 braindead.localdomain kernel: Bluetooth: hci0: QCA
>> Failed to download patch (-110)
>
> Logs are mostly unchanges when restarting the bluetooth service after a
> cold boot with the bluetooth originally working.
>
>> FWIW, I get similar logs after logging into KDE Plasma. I also get
>> similar logs after a warm boot.
>>
>> This appears to be some kind of bug in the initialization of the
>> hardware. Is there any additional information I can provide to help
>> troubleshoot this problem.
>
> I will also say that the bluetooth appears to work throught a
> suspend/resume cycle as long as I don't restart the bluetooth service.
>
> Oh, and my laptop is a Dell 9310 if that helps.

Kalle, I noticed that you reported having a Dell 9310 in 2021 in a
message on this very mailing list. Do you happen to still have that
laptop? If so, so you still test on that laptop at all? I am curious if
it is having the same issue I am experiencing?

> Is there any other info I could collect that might be useful?
>
> I'm pretty new to troubleshooting a problem like this and would be happy
> to have any advice anyone might want to share.
>
> Thanks,
> wt
>

--
You're more amazing than you think!

2024-04-06 20:29:45

by Wren Turkal

[permalink] [raw]
Subject: Re: QCA6390 bluetooth doesn't work after warm boot or disable/reenable

+Ben Young Tae Kim, current maintainer of btqca

On 4/6/24 1:27 PM, Wren Turkal wrote:
> +Kalle Valo since you have the same laptop
>
> On 4/6/24 1:16 PM, Wren Turkal wrote:
>> Sorry for the double send on the original message. I am still hoping
>> to get some help. I have added additional info below.
>>
>> On 4/4/24 12:14 PM, Wren Turkal wrote:
>>> Hey there ath11k/bluetooth folks,
>>>
>>> I am having a pretty major problem with QCA6930 for some time (maybe
>>> a year or two). I have this bluetooth device:
>>>
>>> 72:00.0 Unassigned class [ff00]: Qualcomm Technologies, Inc QCA6390
>>> Wireless Network Adapter
>>>
>>> This device appears to be driven by the ath11k module and others. I
>>> hope I am pinging the right lists.
>>>
>>> I am using Fedora Rawhide. Fully updated yesterday. My uname reports
>>> this:
>>>
>>> Linux braindead.localdomain
>>> 6.9.0-0.rc2.20240402git026e680b0a08.24.fc41.x86_64 #1 SMP
>>> PREEMPT_DYNAMIC Tue Apr  2 17:51:18 UTC 2024 x86_64 GNU/Linux
>>
>> Updated today. Here's the new uname:
>>
>> Linux braindead.localdomain
>> 6.9.0-0.rc2.20240405git8cb4a9a82b21.27.fc41.x86_64 #1 SMP
>> PREEMPT_DYNAMIC Fri Apr  5 16:48:07 UTC 2024 x86_64 GNU/Linux
>>
>> I also noticed a new version of bluez. Here is the RPM package
>> version: bluez-5.73-3.fc41.x86_64
>>
>>> My main bluetooth device is  a Logitech MX 3 Mac mouse that uses
>>> bluetooth. When bluetooth fails, so does the mouse. I have power
>>> cycle my laptop when that happens. I'd love to help find a fix for this.
>>>
>>> The problem is that I cannot disable and re-enable the bluetooth on
>>> my system. Bluetooth also doesn't work after a warm boot. I have to
>>> power cycle my laptop to recover bluetooth funcitonality. I have
>>> tried the following:
>>>
>>> * logging into KDE Plasma (bluetooth stops working)
>>> * logging into GNOME (works on cold boot, fails on warm boot)
>>
>> I did notice that the mouse seems to work in Plasma until a few sec
>> after I see the background image appears. I suspect that Plasma is
>> disabling and reenabling the bluetooth where Gnome does not do that.
>>
>>> After logging into GNOME during a cold boot, I have also done
>>> "systemctl restart bluetooth.service". I get these journal logs
>>> during the stop;
>>>
>>> ➜  bt_kernel_bug cat journal-stop-bluetooth-service.log
>>> Apr 04 10:14:41 braindead.localdomain NetworkManager[1120]: <info>
>>> [1712250881.7060] device (F0:5C:77:F2:60:FC): state change:
>>> disconnected -> unmanaged (reason 'removed', sys-iface-state: 'removed')
>>> Apr 04 10:14:41 braindead.localdomain systemd[1]: Starting
>>> systemd-rfkill.service - Load/Save RF Kill Switch Status...
>>> Apr 04 10:14:41 braindead.localdomain systemd[1]: Started
>>> systemd-rfkill.service - Load/Save RF Kill Switch Status.
>>> Apr 04 10:14:41 braindead.localdomain audit[1]: SERVICE_START pid=1
>>> uid=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:init_t:s0
>>> msg='unit=systemd-rfkill comm="systemd"
>>> exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'
>>> Apr 04 10:14:46 braindead.localdomain systemd[1]:
>>> systemd-rfkill.service: Deactivated successfully.
>>> Apr 04 10:14:46 braindead.localdomain audit[1]: SERVICE_STOP pid=1
>>> uid=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:init_t:s0
>>> msg='unit=systemd-rfkill comm="systemd"
>>> exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'
>>>
>>> I get these journal logs during start:
>>>
>>> Apr 04 10:15:05 braindead.localdomain kernel: Bluetooth: hci0:
>>> setting up ROME/QCA6390
>>> Apr 04 10:15:05 braindead.localdomain systemd[1]: Starting
>>> systemd-rfkill.service - Load/Save RF Kill Switch Status...
>>> Apr 04 10:15:05 braindead.localdomain systemd[1]: Started
>>> systemd-rfkill.service - Load/Save RF Kill Switch Status.
>>> Apr 04 10:15:05 braindead.localdomain audit[1]: SERVICE_START pid=1
>>> uid=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:init_t:s0
>>> msg='unit=systemd-rfkill comm="systemd"
>>> exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'
>>> Apr 04 10:15:05 braindead.localdomain kernel: Bluetooth: hci0: QCA
>>> Product ID   :0x00000010
>>> Apr 04 10:15:05 braindead.localdomain kernel: Bluetooth: hci0: QCA
>>> SOC Version  :0x400a0200
>>> Apr 04 10:15:05 braindead.localdomain kernel: Bluetooth: hci0: QCA
>>> ROM Version  :0x00000200
>>> Apr 04 10:15:05 braindead.localdomain kernel: Bluetooth: hci0: QCA
>>> Patch Version:0x00003ac0
>>> Apr 04 10:15:05 braindead.localdomain kernel: Bluetooth: hci0: QCA
>>> controller version 0x02000200
>>> Apr 04 10:15:05 braindead.localdomain kernel: Bluetooth: hci0: QCA
>>> Downloading qca/htbtfw20.tlv
>>> Apr 04 10:15:06 braindead.localdomain kernel: Bluetooth: hci0: QCA
>>> Failed to send TLV segment (-110)
>>> Apr 04 10:15:06 braindead.localdomain kernel: Bluetooth: hci0: QCA
>>> Failed to download patch (-110)
>>> Apr 04 10:15:06 braindead.localdomain kernel: Bluetooth: hci0: Retry
>>> BT power ON:0
>>> Apr 04 10:15:08 braindead.localdomain kernel: Bluetooth: hci0:
>>> command 0xfc00 tx timeout
>>> Apr 04 10:15:08 braindead.localdomain kernel: Bluetooth: hci0:
>>> Reading QCA version information failed (-110)
>>> Apr 04 10:15:08 braindead.localdomain kernel: Bluetooth: hci0: Retry
>>> BT power ON:1
>>> Apr 04 10:15:10 braindead.localdomain systemd[1]:
>>> systemd-rfkill.service: Deactivated successfully.
>>> Apr 04 10:15:10 braindead.localdomain audit[1]: SERVICE_STOP pid=1
>>> uid=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:init_t:s0
>>> msg='unit=systemd-rfkill comm="systemd"
>>> exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'
>>> Apr 04 10:15:10 braindead.localdomain kernel: Bluetooth: hci0:
>>> command 0xfc00 tx timeout
>>> Apr 04 10:15:10 braindead.localdomain kernel: Bluetooth: hci0:
>>> Reading QCA version information failed (-110)
>>> Apr 04 10:15:10 braindead.localdomain kernel: Bluetooth: hci0: Retry
>>> BT power ON:2
>>> Apr 04 10:15:13 braindead.localdomain bluetoothd[986]: Failed to set
>>> mode: Authentication Failed (0x05)
>>> Apr 04 10:15:13 braindead.localdomain kernel: Bluetooth: hci0:
>>> command 0xfc00 tx timeout
>>> Apr 04 10:15:13 braindead.localdomain kernel: Bluetooth: hci0:
>>> Reading QCA version information failed (-110)
>>> Apr 04 10:15:15 braindead.localdomain chronyd[1065]: Selected source
>>> 204.17.205.8 (2.fedora.pool.ntp.org)
>>> Apr 04 10:15:22 braindead.localdomain systemd[1687]: Created slice
>>> background.slice - User Background Tasks Slice.
>>> Apr 04 10:15:22 braindead.localdomain systemd[1687]: Starting
>>> systemd-tmpfiles-clean.service - Cleanup of User's Temporary Files
>>> and Directories...
>>> Apr 04 10:15:22 braindead.localdomain systemd[1687]: Finished
>>> systemd-tmpfiles-clean.service - Cleanup of User's Temporary Files
>>> and Directories.
>>> Apr 04 10:15:38 braindead.localdomain audit: BPF prog-id=86 op=LOAD
>>> Apr 04 10:15:38 braindead.localdomain systemd[1]: Starting
>>> plocate-updatedb.service - Update the plocate database...
>>> Apr 04 10:15:41 braindead.localdomain systemd[1687]: Started
>>> vte-spawn-21527424-cb2d-479f-af17-22251e2b37a0.scope - VTE child
>>> process 5144 launched by gnome-terminal-server process 4668.
>>> Apr 04 10:15:53 braindead.localdomain systemd[1]:
>>> plocate-updatedb.service: Deactivated successfully.
>>> Apr 04 10:15:53 braindead.localdomain systemd[1]: Finished
>>> plocate-updatedb.service - Update the plocate database.
>>> Apr 04 10:15:53 braindead.localdomain systemd[1]:
>>> plocate-updatedb.service: Consumed 6.802s CPU time.
>>> Apr 04 10:15:53 braindead.localdomain audit[1]: SERVICE_START pid=1
>>> uid=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:init_t:s0
>>> msg='unit=plocate-updatedb comm="systemd"
>>> exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'
>>> Apr 04 10:15:53 braindead.localdomain audit[1]: SERVICE_STOP pid=1
>>> uid=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:init_t:s0
>>> msg='unit=plocate-updatedb comm="systemd"
>>> exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'
>>> Apr 04 10:15:54 braindead.localdomain audit: BPF prog-id=86 op=UNLOAD
>>> Apr 04 10:16:13 braindead.localdomain baloo_file_extractor[5251]:
>>> kf.idletime: Could not find any system poller plugin
>>> Apr 04 10:16:13 braindead.localdomain baloo_file_extractor[5251]:
>>> qt.core.qobject.connect: QObject::connect(KAbstractIdleTimePoller,
>>> KIdleTime): invalid nullptr parameter
>>> Apr 04 10:16:13 braindead.localdomain baloo_file_extractor[5251]:
>>> qt.core.qobject.connect: QObject::connect(KAbstractIdleTimePoller,
>>> KIdleTime): invalid nullptr parameter
>>>
>>> There's a bunch of errors in those logs starting with these two
>>> seemingly important lines:
>>>
>>> Apr 04 10:15:06 braindead.localdomain kernel: Bluetooth: hci0: QCA
>>> Failed to send TLV segment (-110)
>>> Apr 04 10:15:06 braindead.localdomain kernel: Bluetooth: hci0: QCA
>>> Failed to download patch (-110)
>>
>> Logs are mostly unchanges when restarting the bluetooth service after
>> a cold boot with the bluetooth originally working.
>>
>>> FWIW, I get similar logs after logging into KDE Plasma. I also get
>>> similar logs after a warm boot.
>>>
>>> This appears to be some kind of bug in the initialization of the
>>> hardware. Is there any additional information I can provide to help
>>> troubleshoot this problem.
>>
>> I will also say that the bluetooth appears to work throught a
>> suspend/resume cycle as long as I don't restart the bluetooth service.
>>
>> Oh, and my laptop is a Dell 9310 if that helps.
>
> Kalle, I noticed that you reported having a Dell 9310 in 2021 in a
> message on this very mailing list. Do you happen to still have that
> laptop? If so, so you still test on that laptop at all? I am curious if
> it is having the same issue I am experiencing?
>
>> Is there any other info I could collect that might be useful?
>>
>> I'm pretty new to troubleshooting a problem like this and would be
>> happy to have any advice anyone might want to share.
>>
>> Thanks,
>> wt
>>
>

--
You're more amazing than you think!

2024-04-06 20:51:14

by Wren Turkal

[permalink] [raw]
Subject: Re: QCA6390 bluetooth doesn't work after warm boot or disable/reenable

On 4/6/24 1:29 PM, Wren Turkal wrote:
> +Ben Young Tae Kim, current maintainer of btqca
>
> On 4/6/24 1:27 PM, Wren Turkal wrote:
>> +Kalle Valo since you have the same laptop
>>
>> On 4/6/24 1:16 PM, Wren Turkal wrote:
>>> Sorry for the double send on the original message. I am still hoping
>>> to get some help. I have added additional info below.
>>>
>>> On 4/4/24 12:14 PM, Wren Turkal wrote:
>>>> Hey there ath11k/bluetooth folks,
>>>>
>>>> I am having a pretty major problem with QCA6930 for some time (maybe
>>>> a year or two). I have this bluetooth device:
>>>>
>>>> 72:00.0 Unassigned class [ff00]: Qualcomm Technologies, Inc QCA6390
>>>> Wireless Network Adapter
>>>>
>>>> This device appears to be driven by the ath11k module and others. I
>>>> hope I am pinging the right lists.
>>>>
>>>> I am using Fedora Rawhide. Fully updated yesterday. My uname reports
>>>> this:
>>>>
>>>> Linux braindead.localdomain
>>>> 6.9.0-0.rc2.20240402git026e680b0a08.24.fc41.x86_64 #1 SMP
>>>> PREEMPT_DYNAMIC Tue Apr  2 17:51:18 UTC 2024 x86_64 GNU/Linux
>>>
>>> Updated today. Here's the new uname:
>>>
>>> Linux braindead.localdomain
>>> 6.9.0-0.rc2.20240405git8cb4a9a82b21.27.fc41.x86_64 #1 SMP
>>> PREEMPT_DYNAMIC Fri Apr  5 16:48:07 UTC 2024 x86_64 GNU/Linux
>>>
>>> I also noticed a new version of bluez. Here is the RPM package
>>> version: bluez-5.73-3.fc41.x86_64
>>>
>>>> My main bluetooth device is  a Logitech MX 3 Mac mouse that uses
>>>> bluetooth. When bluetooth fails, so does the mouse. I have power
>>>> cycle my laptop when that happens. I'd love to help find a fix for
>>>> this.
>>>>
>>>> The problem is that I cannot disable and re-enable the bluetooth on
>>>> my system. Bluetooth also doesn't work after a warm boot. I have to
>>>> power cycle my laptop to recover bluetooth funcitonality. I have
>>>> tried the following:
>>>>
>>>> * logging into KDE Plasma (bluetooth stops working)
>>>> * logging into GNOME (works on cold boot, fails on warm boot)
>>>
>>> I did notice that the mouse seems to work in Plasma until a few sec
>>> after I see the background image appears. I suspect that Plasma is
>>> disabling and reenabling the bluetooth where Gnome does not do that.
>>>
>>>> After logging into GNOME during a cold boot, I have also done
>>>> "systemctl restart bluetooth.service". I get these journal logs
>>>> during the stop;
>>>>
>>>> ➜  bt_kernel_bug cat journal-stop-bluetooth-service.log
>>>> Apr 04 10:14:41 braindead.localdomain NetworkManager[1120]: <info>
>>>> [1712250881.7060] device (F0:5C:77:F2:60:FC): state change:
>>>> disconnected -> unmanaged (reason 'removed', sys-iface-state:
>>>> 'removed')
>>>> Apr 04 10:14:41 braindead.localdomain systemd[1]: Starting
>>>> systemd-rfkill.service - Load/Save RF Kill Switch Status...
>>>> Apr 04 10:14:41 braindead.localdomain systemd[1]: Started
>>>> systemd-rfkill.service - Load/Save RF Kill Switch Status.
>>>> Apr 04 10:14:41 braindead.localdomain audit[1]: SERVICE_START pid=1
>>>> uid=0 auid=4294967295 ses=4294967295
>>>> subj=system_u:system_r:init_t:s0 msg='unit=systemd-rfkill
>>>> comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=?
>>>> terminal=? res=success'
>>>> Apr 04 10:14:46 braindead.localdomain systemd[1]:
>>>> systemd-rfkill.service: Deactivated successfully.
>>>> Apr 04 10:14:46 braindead.localdomain audit[1]: SERVICE_STOP pid=1
>>>> uid=0 auid=4294967295 ses=4294967295
>>>> subj=system_u:system_r:init_t:s0 msg='unit=systemd-rfkill
>>>> comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=?
>>>> terminal=? res=success'
>>>>
>>>> I get these journal logs during start:
>>>>
>>>> Apr 04 10:15:05 braindead.localdomain kernel: Bluetooth: hci0:
>>>> setting up ROME/QCA6390
>>>> Apr 04 10:15:05 braindead.localdomain systemd[1]: Starting
>>>> systemd-rfkill.service - Load/Save RF Kill Switch Status...
>>>> Apr 04 10:15:05 braindead.localdomain systemd[1]: Started
>>>> systemd-rfkill.service - Load/Save RF Kill Switch Status.
>>>> Apr 04 10:15:05 braindead.localdomain audit[1]: SERVICE_START pid=1
>>>> uid=0 auid=4294967295 ses=4294967295
>>>> subj=system_u:system_r:init_t:s0 msg='unit=systemd-rfkill
>>>> comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=?
>>>> terminal=? res=success'
>>>> Apr 04 10:15:05 braindead.localdomain kernel: Bluetooth: hci0: QCA
>>>> Product ID   :0x00000010
>>>> Apr 04 10:15:05 braindead.localdomain kernel: Bluetooth: hci0: QCA
>>>> SOC Version  :0x400a0200
>>>> Apr 04 10:15:05 braindead.localdomain kernel: Bluetooth: hci0: QCA
>>>> ROM Version  :0x00000200
>>>> Apr 04 10:15:05 braindead.localdomain kernel: Bluetooth: hci0: QCA
>>>> Patch Version:0x00003ac0
>>>> Apr 04 10:15:05 braindead.localdomain kernel: Bluetooth: hci0: QCA
>>>> controller version 0x02000200
>>>> Apr 04 10:15:05 braindead.localdomain kernel: Bluetooth: hci0: QCA
>>>> Downloading qca/htbtfw20.tlv
>>>> Apr 04 10:15:06 braindead.localdomain kernel: Bluetooth: hci0: QCA
>>>> Failed to send TLV segment (-110)
>>>> Apr 04 10:15:06 braindead.localdomain kernel: Bluetooth: hci0: QCA
>>>> Failed to download patch (-110)
>>>> Apr 04 10:15:06 braindead.localdomain kernel: Bluetooth: hci0: Retry
>>>> BT power ON:0
>>>> Apr 04 10:15:08 braindead.localdomain kernel: Bluetooth: hci0:
>>>> command 0xfc00 tx timeout
>>>> Apr 04 10:15:08 braindead.localdomain kernel: Bluetooth: hci0:
>>>> Reading QCA version information failed (-110)
>>>> Apr 04 10:15:08 braindead.localdomain kernel: Bluetooth: hci0: Retry
>>>> BT power ON:1
>>>> Apr 04 10:15:10 braindead.localdomain systemd[1]:
>>>> systemd-rfkill.service: Deactivated successfully.
>>>> Apr 04 10:15:10 braindead.localdomain audit[1]: SERVICE_STOP pid=1
>>>> uid=0 auid=4294967295 ses=4294967295
>>>> subj=system_u:system_r:init_t:s0 msg='unit=systemd-rfkill
>>>> comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=?
>>>> terminal=? res=success'
>>>> Apr 04 10:15:10 braindead.localdomain kernel: Bluetooth: hci0:
>>>> command 0xfc00 tx timeout
>>>> Apr 04 10:15:10 braindead.localdomain kernel: Bluetooth: hci0:
>>>> Reading QCA version information failed (-110)
>>>> Apr 04 10:15:10 braindead.localdomain kernel: Bluetooth: hci0: Retry
>>>> BT power ON:2
>>>> Apr 04 10:15:13 braindead.localdomain bluetoothd[986]: Failed to set
>>>> mode: Authentication Failed (0x05)
>>>> Apr 04 10:15:13 braindead.localdomain kernel: Bluetooth: hci0:
>>>> command 0xfc00 tx timeout
>>>> Apr 04 10:15:13 braindead.localdomain kernel: Bluetooth: hci0:
>>>> Reading QCA version information failed (-110)
>>>> Apr 04 10:15:15 braindead.localdomain chronyd[1065]: Selected source
>>>> 204.17.205.8 (2.fedora.pool.ntp.org)
>>>> Apr 04 10:15:22 braindead.localdomain systemd[1687]: Created slice
>>>> background.slice - User Background Tasks Slice.
>>>> Apr 04 10:15:22 braindead.localdomain systemd[1687]: Starting
>>>> systemd-tmpfiles-clean.service - Cleanup of User's Temporary Files
>>>> and Directories...
>>>> Apr 04 10:15:22 braindead.localdomain systemd[1687]: Finished
>>>> systemd-tmpfiles-clean.service - Cleanup of User's Temporary Files
>>>> and Directories.
>>>> Apr 04 10:15:38 braindead.localdomain audit: BPF prog-id=86 op=LOAD
>>>> Apr 04 10:15:38 braindead.localdomain systemd[1]: Starting
>>>> plocate-updatedb.service - Update the plocate database...
>>>> Apr 04 10:15:41 braindead.localdomain systemd[1687]: Started
>>>> vte-spawn-21527424-cb2d-479f-af17-22251e2b37a0.scope - VTE child
>>>> process 5144 launched by gnome-terminal-server process 4668.
>>>> Apr 04 10:15:53 braindead.localdomain systemd[1]:
>>>> plocate-updatedb.service: Deactivated successfully.
>>>> Apr 04 10:15:53 braindead.localdomain systemd[1]: Finished
>>>> plocate-updatedb.service - Update the plocate database.
>>>> Apr 04 10:15:53 braindead.localdomain systemd[1]:
>>>> plocate-updatedb.service: Consumed 6.802s CPU time.
>>>> Apr 04 10:15:53 braindead.localdomain audit[1]: SERVICE_START pid=1
>>>> uid=0 auid=4294967295 ses=4294967295
>>>> subj=system_u:system_r:init_t:s0 msg='unit=plocate-updatedb
>>>> comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=?
>>>> terminal=? res=success'
>>>> Apr 04 10:15:53 braindead.localdomain audit[1]: SERVICE_STOP pid=1
>>>> uid=0 auid=4294967295 ses=4294967295
>>>> subj=system_u:system_r:init_t:s0 msg='unit=plocate-updatedb
>>>> comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=?
>>>> terminal=? res=success'
>>>> Apr 04 10:15:54 braindead.localdomain audit: BPF prog-id=86 op=UNLOAD
>>>> Apr 04 10:16:13 braindead.localdomain baloo_file_extractor[5251]:
>>>> kf.idletime: Could not find any system poller plugin
>>>> Apr 04 10:16:13 braindead.localdomain baloo_file_extractor[5251]:
>>>> qt.core.qobject.connect: QObject::connect(KAbstractIdleTimePoller,
>>>> KIdleTime): invalid nullptr parameter
>>>> Apr 04 10:16:13 braindead.localdomain baloo_file_extractor[5251]:
>>>> qt.core.qobject.connect: QObject::connect(KAbstractIdleTimePoller,
>>>> KIdleTime): invalid nullptr parameter
>>>>
>>>> There's a bunch of errors in those logs starting with these two
>>>> seemingly important lines:
>>>>
>>>> Apr 04 10:15:06 braindead.localdomain kernel: Bluetooth: hci0: QCA
>>>> Failed to send TLV segment (-110)
>>>> Apr 04 10:15:06 braindead.localdomain kernel: Bluetooth: hci0: QCA
>>>> Failed to download patch (-110)

I narrowed down how to cause the bad logs a bit, if I do the following:

1. stop the bluetooth service
2. unload the hci_uart and btqca modules
3. restart the bluetooth service
4. reload those modules

I get these log messages:

Apr 06 13:42:43 braindead.localdomain sudo[11047]: wt : TTY=pts/0
; PWD=/home/wt ; USER=root ; COMMAND=/usr/sbin/modprobe hci_uart
Apr 06 13:42:43 braindead.localdomain audit[11047]: USER_CMD pid=11047
uid=1000 auid=1000 ses=3
subj=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
msg='cwd="/home/wt" cmd=6D>
Apr 06 13:42:43 braindead.localdomain audit[11047]: CRED_REFR pid=11047
uid=1000 auid=1000 ses=3
subj=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
msg='op=PAM:setcred grant>
Apr 06 13:42:43 braindead.localdomain sudo[11047]:
pam_unix(sudo:session): session opened for user root(uid=0) by wt(uid=1000)
Apr 06 13:42:43 braindead.localdomain audit[11047]: USER_START pid=11047
uid=1000 auid=1000 ses=3
subj=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
msg='op=PAM:session_open>
Apr 06 13:42:43 braindead.localdomain kernel: Bluetooth: HCI UART driver
ver 2.3
Apr 06 13:42:43 braindead.localdomain kernel: Bluetooth: HCI UART
protocol H4 registered
Apr 06 13:42:43 braindead.localdomain kernel: Bluetooth: HCI UART
protocol BCSP registered
Apr 06 13:42:43 braindead.localdomain kernel: Bluetooth: HCI UART
protocol LL registered
Apr 06 13:42:43 braindead.localdomain kernel: Bluetooth: HCI UART
protocol ATH3K registered
Apr 06 13:42:43 braindead.localdomain kernel: Bluetooth: HCI UART
protocol Three-wire (H5) registered
Apr 06 13:42:43 braindead.localdomain kernel: Bluetooth: HCI UART
protocol Intel registered
Apr 06 13:42:43 braindead.localdomain kernel: Bluetooth: HCI UART
protocol Broadcom registered
Apr 06 13:42:43 braindead.localdomain kernel: Bluetooth: HCI UART
protocol QCA registered
Apr 06 13:42:43 braindead.localdomain kernel: Bluetooth: HCI UART
protocol AG6XX registered
Apr 06 13:42:43 braindead.localdomain kernel: Bluetooth: HCI UART
protocol Marvell registered
Apr 06 13:42:43 braindead.localdomain kernel: Bluetooth: hci0: setting
up ROME/QCA6390
Apr 06 13:42:43 braindead.localdomain sudo[11047]:
pam_unix(sudo:session): session closed for user root
Apr 06 13:42:43 braindead.localdomain audit[11047]: USER_END pid=11047
uid=1000 auid=1000 ses=3
subj=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
msg='op=PAM:session_close >
Apr 06 13:42:43 braindead.localdomain audit[11047]: CRED_DISP pid=11047
uid=1000 auid=1000 ses=3
subj=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
msg='op=PAM:setcred grant>
Apr 06 13:42:43 braindead.localdomain systemd[1666]: Reached target
bluetooth.target - Bluetooth.
Apr 06 13:42:43 braindead.localdomain systemd[1]: Starting
systemd-rfkill.service - Load/Save RF Kill Switch Status...
Apr 06 13:42:43 braindead.localdomain systemd[1]: Reached target
bluetooth.target - Bluetooth Support.
Apr 06 13:42:43 braindead.localdomain systemd[1]: Started
systemd-rfkill.service - Load/Save RF Kill Switch Status.
Apr 06 13:42:43 braindead.localdomain audit[1]: SERVICE_START pid=1
uid=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:init_t:s0
msg='unit=systemd-rfkill comm="systemd" exe>
Apr 06 13:42:45 braindead.localdomain kernel: Bluetooth: hci0: command
0xfc00 tx timeout
Apr 06 13:42:45 braindead.localdomain kernel: Bluetooth: hci0: Reading
QCA version information failed (-110)
Apr 06 13:42:45 braindead.localdomain kernel: Bluetooth: hci0: Retry BT
power ON:0
Apr 06 13:42:48 braindead.localdomain kernel: Bluetooth: hci0: command
0xfc00 tx timeout
Apr 06 13:42:48 braindead.localdomain kernel: Bluetooth: hci0: Reading
QCA version information failed (-110)
Apr 06 13:42:48 braindead.localdomain kernel: Bluetooth: hci0: Retry BT
power ON:1
Apr 06 13:42:48 braindead.localdomain systemd[1]:
systemd-rfkill.service: Deactivated successfully.
Apr 06 13:42:48 braindead.localdomain audit[1]: SERVICE_STOP pid=1 uid=0
auid=4294967295 ses=4294967295 subj=system_u:system_r:init_t:s0
msg='unit=systemd-rfkill comm="systemd" exe=>

Do any of y'all see anything that helps?

>>>
>>> Logs are mostly unchanges when restarting the bluetooth service after
>>> a cold boot with the bluetooth originally working.
>>>
>>>> FWIW, I get similar logs after logging into KDE Plasma. I also get
>>>> similar logs after a warm boot.
>>>>
>>>> This appears to be some kind of bug in the initialization of the
>>>> hardware. Is there any additional information I can provide to help
>>>> troubleshoot this problem.
>>>
>>> I will also say that the bluetooth appears to work throught a
>>> suspend/resume cycle as long as I don't restart the bluetooth service.
>>>
>>> Oh, and my laptop is a Dell 9310 if that helps.
>>
>> Kalle, I noticed that you reported having a Dell 9310 in 2021 in a
>> message on this very mailing list. Do you happen to still have that
>> laptop? If so, so you still test on that laptop at all? I am curious
>> if it is having the same issue I am experiencing?
>>
>>> Is there any other info I could collect that might be useful?
>>>
>>> I'm pretty new to troubleshooting a problem like this and would be
>>> happy to have any advice anyone might want to share.
>>>
>>> Thanks,
>>> wt
>>>
>>
>

--
You're more amazing than you think!

2024-04-08 05:23:05

by Kalle Valo

[permalink] [raw]
Subject: Re: QCA6390 bluetooth doesn't work after warm boot or disable/reenable

Wren Turkal <[email protected]> writes:

>>> Apr 04 10:15:06 braindead.localdomain kernel: Bluetooth: hci0: QCA
>>> Failed to send TLV segment (-110)
>>> Apr 04 10:15:06 braindead.localdomain kernel: Bluetooth: hci0: QCA
>>> Failed to download patch (-110)
>> Logs are mostly unchanges when restarting the bluetooth service
>> after a cold boot with the bluetooth originally working.
>>
>>> FWIW, I get similar logs after logging into KDE Plasma. I also get
>>> similar logs after a warm boot.
>>>
>>> This appears to be some kind of bug in the initialization of the
>>> hardware. Is there any additional information I can provide to help
>>> troubleshoot this problem.
>> I will also say that the bluetooth appears to work throught a
>> suspend/resume cycle as long as I don't restart the bluetooth
>> service.
>> Oh, and my laptop is a Dell 9310 if that helps.
>
> Kalle, I noticed that you reported having a Dell 9310 in 2021 in a
> message on this very mailing list. Do you happen to still have that
> laptop? If so, so you still test on that laptop at all? I am curious
> if it is having the same issue I am experiencing?

Yes, I still have that laptop and I use it as my daily driver. But I
don't use Bluetooth and I don't even have the Bluetooth enabled in my
.config.

BTW ath11k is a Wi-Fi driver so most likely it isn't affecting your
problem.

--
https://patchwork.kernel.org/project/linux-wireless/list/

https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches

2024-04-08 18:35:58

by Wren Turkal

[permalink] [raw]
Subject: Re: QCA6390 bluetooth doesn't work after warm boot or disable/reenable

Thanks for letting me know. The wifi is working great. Thank you for
your work on that.

I doubt you will have time, but if you do have a chance to test it, that
would be amazing. I would love to make sure that I am not the only
person having this issue, if possible.

Thanks,
wt

On 4/7/24 10:22 PM, Kalle Valo wrote:
> Yes, I still have that laptop and I use it as my daily driver. But I
> don't use Bluetooth and I don't even have the Bluetooth enabled in my
> .config.
>
> BTW ath11k is a Wi-Fi driver so most likely it isn't affecting your
> problem.

--
You're more amazing than you think!

2024-04-08 19:50:05

by Wren Turkal

[permalink] [raw]
Subject: Re: QCA6390 bluetooth doesn't work after warm boot or disable/reenable

+Marcel Holtmann <[email protected]>
+Luiz Augusto von Dentz <[email protected]>

Added maintainers identified from the get_maintainer.pl script in the
kernel repo. Hoping to get some ideas for next steps.

More contextual info below:

On 4/6/24 1:27 PM, Wren Turkal wrote:
> +Kalle Valo since you have the same laptop
>
> On 4/6/24 1:16 PM, Wren Turkal wrote:
>> Sorry for the double send on the original message. I am still hoping
>> to get some help. I have added additional info below.
>>
>> On 4/4/24 12:14 PM, Wren Turkal wrote:
>>> Hey there ath11k/bluetooth folks,
>>>
>>> I am having a pretty major problem with QCA6930 for some time (maybe
>>> a year or two). I have this bluetooth device:
>>>
>>> 72:00.0 Unassigned class [ff00]: Qualcomm Technologies, Inc QCA6390
>>> Wireless Network Adapter
>>>
>>> This device appears to be driven by the ath11k module and others. I
>>> hope I am pinging the right lists.
>>>
>>> I am using Fedora Rawhide. Fully updated yesterday. My uname reports
>>> this:
>>>
>>> Linux braindead.localdomain
>>> 6.9.0-0.rc2.20240402git026e680b0a08.24.fc41.x86_64 #1 SMP
>>> PREEMPT_DYNAMIC Tue Apr  2 17:51:18 UTC 2024 x86_64 GNU/Linux
>>
>> Updated today. Here's the new uname:
>>
>> Linux braindead.localdomain
>> 6.9.0-0.rc2.20240405git8cb4a9a82b21.27.fc41.x86_64 #1 SMP
>> PREEMPT_DYNAMIC Fri Apr  5 16:48:07 UTC 2024 x86_64 GNU/Linux

I looked at the current mainline kernel code. I found the following.

I found that there was a patch authored by Zijun Hu that was supposed to
address a warm reboot issue on QCA6390 here:
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/drivers/bluetooth/hci_qca.c?h=v6.9-rc3&id=7e7bbddd029b644f00f0ffbfbc485ed71977d0d5

The same code path from the above patch is now slightly different
because another patch authored by Krzysztof Kozlowski, namely:
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/drivers/bluetooth/hci_qca.c?h=v6.9-rc3&id=272970be3dabd24cbe50e393ffee8f04aec3b9a8

I also see a few fixed over time in the btqca.c file. I wonder if any of
these are related.

Unfortunately, none of these changes were made recently.

Does anyone have an suggestions for next steps?

>>
>> I also noticed a new version of bluez. Here is the RPM package
>> version: bluez-5.73-3.fc41.x86_64
>>
>>> My main bluetooth device is  a Logitech MX 3 Mac mouse that uses
>>> bluetooth. When bluetooth fails, so does the mouse. I have power
>>> cycle my laptop when that happens. I'd love to help find a fix for this.
>>>
>>> The problem is that I cannot disable and re-enable the bluetooth on
>>> my system. Bluetooth also doesn't work after a warm boot. I have to
>>> power cycle my laptop to recover bluetooth funcitonality. I have
>>> tried the following:
>>>
>>> * logging into KDE Plasma (bluetooth stops working)
>>> * logging into GNOME (works on cold boot, fails on warm boot)
>>
>> I did notice that the mouse seems to work in Plasma until a few sec
>> after I see the background image appears. I suspect that Plasma is
>> disabling and reenabling the bluetooth where Gnome does not do that.
>>
>>> After logging into GNOME during a cold boot, I have also done
>>> "systemctl restart bluetooth.service". I get these journal logs
>>> during the stop;
>>>
>>> ➜  bt_kernel_bug cat journal-stop-bluetooth-service.log
>>> Apr 04 10:14:41 braindead.localdomain NetworkManager[1120]: <info>
>>> [1712250881.7060] device (F0:5C:77:F2:60:FC): state change:
>>> disconnected -> unmanaged (reason 'removed', sys-iface-state: 'removed')
>>> Apr 04 10:14:41 braindead.localdomain systemd[1]: Starting
>>> systemd-rfkill.service - Load/Save RF Kill Switch Status...
>>> Apr 04 10:14:41 braindead.localdomain systemd[1]: Started
>>> systemd-rfkill.service - Load/Save RF Kill Switch Status.
>>> Apr 04 10:14:41 braindead.localdomain audit[1]: SERVICE_START pid=1
>>> uid=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:init_t:s0
>>> msg='unit=systemd-rfkill comm="systemd"
>>> exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'
>>> Apr 04 10:14:46 braindead.localdomain systemd[1]:
>>> systemd-rfkill.service: Deactivated successfully.
>>> Apr 04 10:14:46 braindead.localdomain audit[1]: SERVICE_STOP pid=1
>>> uid=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:init_t:s0
>>> msg='unit=systemd-rfkill comm="systemd"
>>> exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'
>>>
>>> I get these journal logs during start:
>>>
>>> Apr 04 10:15:05 braindead.localdomain kernel: Bluetooth: hci0:
>>> setting up ROME/QCA6390
>>> Apr 04 10:15:05 braindead.localdomain systemd[1]: Starting
>>> systemd-rfkill.service - Load/Save RF Kill Switch Status...
>>> Apr 04 10:15:05 braindead.localdomain systemd[1]: Started
>>> systemd-rfkill.service - Load/Save RF Kill Switch Status.
>>> Apr 04 10:15:05 braindead.localdomain audit[1]: SERVICE_START pid=1
>>> uid=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:init_t:s0
>>> msg='unit=systemd-rfkill comm="systemd"
>>> exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'
>>> Apr 04 10:15:05 braindead.localdomain kernel: Bluetooth: hci0: QCA
>>> Product ID   :0x00000010
>>> Apr 04 10:15:05 braindead.localdomain kernel: Bluetooth: hci0: QCA
>>> SOC Version  :0x400a0200
>>> Apr 04 10:15:05 braindead.localdomain kernel: Bluetooth: hci0: QCA
>>> ROM Version  :0x00000200
>>> Apr 04 10:15:05 braindead.localdomain kernel: Bluetooth: hci0: QCA
>>> Patch Version:0x00003ac0
>>> Apr 04 10:15:05 braindead.localdomain kernel: Bluetooth: hci0: QCA
>>> controller version 0x02000200
>>> Apr 04 10:15:05 braindead.localdomain kernel: Bluetooth: hci0: QCA
>>> Downloading qca/htbtfw20.tlv
>>> Apr 04 10:15:06 braindead.localdomain kernel: Bluetooth: hci0: QCA
>>> Failed to send TLV segment (-110)
>>> Apr 04 10:15:06 braindead.localdomain kernel: Bluetooth: hci0: QCA
>>> Failed to download patch (-110)
>>> Apr 04 10:15:06 braindead.localdomain kernel: Bluetooth: hci0: Retry
>>> BT power ON:0
>>> Apr 04 10:15:08 braindead.localdomain kernel: Bluetooth: hci0:
>>> command 0xfc00 tx timeout
>>> Apr 04 10:15:08 braindead.localdomain kernel: Bluetooth: hci0:
>>> Reading QCA version information failed (-110)
>>> Apr 04 10:15:08 braindead.localdomain kernel: Bluetooth: hci0: Retry
>>> BT power ON:1
>>> Apr 04 10:15:10 braindead.localdomain systemd[1]:
>>> systemd-rfkill.service: Deactivated successfully.
>>> Apr 04 10:15:10 braindead.localdomain audit[1]: SERVICE_STOP pid=1
>>> uid=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:init_t:s0
>>> msg='unit=systemd-rfkill comm="systemd"
>>> exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'
>>> Apr 04 10:15:10 braindead.localdomain kernel: Bluetooth: hci0:
>>> command 0xfc00 tx timeout
>>> Apr 04 10:15:10 braindead.localdomain kernel: Bluetooth: hci0:
>>> Reading QCA version information failed (-110)
>>> Apr 04 10:15:10 braindead.localdomain kernel: Bluetooth: hci0: Retry
>>> BT power ON:2
>>> Apr 04 10:15:13 braindead.localdomain bluetoothd[986]: Failed to set
>>> mode: Authentication Failed (0x05)
>>> Apr 04 10:15:13 braindead.localdomain kernel: Bluetooth: hci0:
>>> command 0xfc00 tx timeout
>>> Apr 04 10:15:13 braindead.localdomain kernel: Bluetooth: hci0:
>>> Reading QCA version information failed (-110)
>>> Apr 04 10:15:15 braindead.localdomain chronyd[1065]: Selected source
>>> 204.17.205.8 (2.fedora.pool.ntp.org)
>>> Apr 04 10:15:22 braindead.localdomain systemd[1687]: Created slice
>>> background.slice - User Background Tasks Slice.
>>> Apr 04 10:15:22 braindead.localdomain systemd[1687]: Starting
>>> systemd-tmpfiles-clean.service - Cleanup of User's Temporary Files
>>> and Directories...
>>> Apr 04 10:15:22 braindead.localdomain systemd[1687]: Finished
>>> systemd-tmpfiles-clean.service - Cleanup of User's Temporary Files
>>> and Directories.
>>> Apr 04 10:15:38 braindead.localdomain audit: BPF prog-id=86 op=LOAD
>>> Apr 04 10:15:38 braindead.localdomain systemd[1]: Starting
>>> plocate-updatedb.service - Update the plocate database...
>>> Apr 04 10:15:41 braindead.localdomain systemd[1687]: Started
>>> vte-spawn-21527424-cb2d-479f-af17-22251e2b37a0.scope - VTE child
>>> process 5144 launched by gnome-terminal-server process 4668.
>>> Apr 04 10:15:53 braindead.localdomain systemd[1]:
>>> plocate-updatedb.service: Deactivated successfully.
>>> Apr 04 10:15:53 braindead.localdomain systemd[1]: Finished
>>> plocate-updatedb.service - Update the plocate database.
>>> Apr 04 10:15:53 braindead.localdomain systemd[1]:
>>> plocate-updatedb.service: Consumed 6.802s CPU time.
>>> Apr 04 10:15:53 braindead.localdomain audit[1]: SERVICE_START pid=1
>>> uid=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:init_t:s0
>>> msg='unit=plocate-updatedb comm="systemd"
>>> exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'
>>> Apr 04 10:15:53 braindead.localdomain audit[1]: SERVICE_STOP pid=1
>>> uid=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:init_t:s0
>>> msg='unit=plocate-updatedb comm="systemd"
>>> exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'
>>> Apr 04 10:15:54 braindead.localdomain audit: BPF prog-id=86 op=UNLOAD
>>> Apr 04 10:16:13 braindead.localdomain baloo_file_extractor[5251]:
>>> kf.idletime: Could not find any system poller plugin
>>> Apr 04 10:16:13 braindead.localdomain baloo_file_extractor[5251]:
>>> qt.core.qobject.connect: QObject::connect(KAbstractIdleTimePoller,
>>> KIdleTime): invalid nullptr parameter
>>> Apr 04 10:16:13 braindead.localdomain baloo_file_extractor[5251]:
>>> qt.core.qobject.connect: QObject::connect(KAbstractIdleTimePoller,
>>> KIdleTime): invalid nullptr parameter
>>>
>>> There's a bunch of errors in those logs starting with these two
>>> seemingly important lines:
>>>
>>> Apr 04 10:15:06 braindead.localdomain kernel: Bluetooth: hci0: QCA
>>> Failed to send TLV segment (-110)
>>> Apr 04 10:15:06 braindead.localdomain kernel: Bluetooth: hci0: QCA
>>> Failed to download patch (-110)
>>
>> Logs are mostly unchanges when restarting the bluetooth service after
>> a cold boot with the bluetooth originally working.
>>
>>> FWIW, I get similar logs after logging into KDE Plasma. I also get
>>> similar logs after a warm boot.
>>>
>>> This appears to be some kind of bug in the initialization of the
>>> hardware. Is there any additional information I can provide to help
>>> troubleshoot this problem.
>>
>> I will also say that the bluetooth appears to work throught a
>> suspend/resume cycle as long as I don't restart the bluetooth service.
>>
>> Oh, and my laptop is a Dell 9310 if that helps.
>
> Kalle, I noticed that you reported having a Dell 9310 in 2021 in a
> message on this very mailing list. Do you happen to still have that
> laptop? If so, so you still test on that laptop at all? I am curious if
> it is having the same issue I am experiencing?
>
>> Is there any other info I could collect that might be useful?
>>
>> I'm pretty new to troubleshooting a problem like this and would be
>> happy to have any advice anyone might want to share.
>>
>> Thanks,
>> wt
>>
>

--
You're more amazing than you think!

2024-04-09 19:53:21

by Wren Turkal

[permalink] [raw]
Subject: Re: QCA6390 bluetooth doesn't work after warm boot or disable/reenable

On 4/8/24 12:49 PM, Wren Turkal wrote:
> +Marcel Holtmann <[email protected]>
> +Luiz Augusto von Dentz <[email protected]>
>
> Added maintainers identified from the get_maintainer.pl script in the
> kernel repo. Hoping to get some ideas for next steps.
>
> More contextual info below:
>
> On 4/6/24 1:27 PM, Wren Turkal wrote:
>> +Kalle Valo since you have the same laptop
>>
>> On 4/6/24 1:16 PM, Wren Turkal wrote:
>>> Sorry for the double send on the original message. I am still hoping
>>> to get some help. I have added additional info below.
>>>
>>> On 4/4/24 12:14 PM, Wren Turkal wrote:
>>>> Hey there ath11k/bluetooth folks,
>>>>
>>>> I am having a pretty major problem with QCA6930 for some time (maybe
>>>> a year or two). I have this bluetooth device:
>>>>
>>>> 72:00.0 Unassigned class [ff00]: Qualcomm Technologies, Inc QCA6390
>>>> Wireless Network Adapter
>>>>
>>>> This device appears to be driven by the ath11k module and others. I
>>>> hope I am pinging the right lists.
>>>>
>>>> I am using Fedora Rawhide. Fully updated yesterday. My uname reports
>>>> this:
>>>>
>>>> Linux braindead.localdomain
>>>> 6.9.0-0.rc2.20240402git026e680b0a08.24.fc41.x86_64 #1 SMP
>>>> PREEMPT_DYNAMIC Tue Apr  2 17:51:18 UTC 2024 x86_64 GNU/Linux
>>>
>>> Updated today. Here's the new uname:
>>>
>>> Linux braindead.localdomain
>>> 6.9.0-0.rc2.20240405git8cb4a9a82b21.27.fc41.x86_64 #1 SMP
>>> PREEMPT_DYNAMIC Fri Apr  5 16:48:07 UTC 2024 x86_64 GNU/Linux
>
> I looked at the current mainline kernel code. I found the following.
>
> I found that there was a patch authored by Zijun Hu that was supposed to
> address a warm reboot issue on QCA6390 here:
> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/drivers/bluetooth/hci_qca.c?h=v6.9-rc3&id=7e7bbddd029b644f00f0ffbfbc485ed71977d0d5
>
> The same code path from the above patch is now slightly different
> because another patch authored by Krzysztof Kozlowski, namely:
> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/drivers/bluetooth/hci_qca.c?h=v6.9-rc3&id=272970be3dabd24cbe50e393ffee8f04aec3b9a8
>
> I also see a few fixed over time in the btqca.c file. I wonder if any of
> these are related.
>
> Unfortunately, none of these changes were made recently.
>
> Does anyone have an suggestions for next steps?

I am trying to build kernels as old as 5.19 to start a bisect. I have
been unsuccessful due to compiler warnings (presumably from newer
version of gcc than were used at the time those kernels were released.
Is there any secret sauce to getting these older kernels to build with
newer gccs?

>>>
>>> I also noticed a new version of bluez. Here is the RPM package
>>> version: bluez-5.73-3.fc41.x86_64
>>>
>>>> My main bluetooth device is  a Logitech MX 3 Mac mouse that uses
>>>> bluetooth. When bluetooth fails, so does the mouse. I have power
>>>> cycle my laptop when that happens. I'd love to help find a fix for
>>>> this.
>>>>
>>>> The problem is that I cannot disable and re-enable the bluetooth on
>>>> my system. Bluetooth also doesn't work after a warm boot. I have to
>>>> power cycle my laptop to recover bluetooth funcitonality. I have
>>>> tried the following:
>>>>
>>>> * logging into KDE Plasma (bluetooth stops working)
>>>> * logging into GNOME (works on cold boot, fails on warm boot)
>>>
>>> I did notice that the mouse seems to work in Plasma until a few sec
>>> after I see the background image appears. I suspect that Plasma is
>>> disabling and reenabling the bluetooth where Gnome does not do that.
>>>
>>>> After logging into GNOME during a cold boot, I have also done
>>>> "systemctl restart bluetooth.service". I get these journal logs
>>>> during the stop;
>>>>
>>>> ➜  bt_kernel_bug cat journal-stop-bluetooth-service.log
>>>> Apr 04 10:14:41 braindead.localdomain NetworkManager[1120]: <info>
>>>> [1712250881.7060] device (F0:5C:77:F2:60:FC): state change:
>>>> disconnected -> unmanaged (reason 'removed', sys-iface-state:
>>>> 'removed')
>>>> Apr 04 10:14:41 braindead.localdomain systemd[1]: Starting
>>>> systemd-rfkill.service - Load/Save RF Kill Switch Status...
>>>> Apr 04 10:14:41 braindead.localdomain systemd[1]: Started
>>>> systemd-rfkill.service - Load/Save RF Kill Switch Status.
>>>> Apr 04 10:14:41 braindead.localdomain audit[1]: SERVICE_START pid=1
>>>> uid=0 auid=4294967295 ses=4294967295
>>>> subj=system_u:system_r:init_t:s0 msg='unit=systemd-rfkill
>>>> comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=?
>>>> terminal=? res=success'
>>>> Apr 04 10:14:46 braindead.localdomain systemd[1]:
>>>> systemd-rfkill.service: Deactivated successfully.
>>>> Apr 04 10:14:46 braindead.localdomain audit[1]: SERVICE_STOP pid=1
>>>> uid=0 auid=4294967295 ses=4294967295
>>>> subj=system_u:system_r:init_t:s0 msg='unit=systemd-rfkill
>>>> comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=?
>>>> terminal=? res=success'
>>>>
>>>> I get these journal logs during start:
>>>>
>>>> Apr 04 10:15:05 braindead.localdomain kernel: Bluetooth: hci0:
>>>> setting up ROME/QCA6390
>>>> Apr 04 10:15:05 braindead.localdomain systemd[1]: Starting
>>>> systemd-rfkill.service - Load/Save RF Kill Switch Status...
>>>> Apr 04 10:15:05 braindead.localdomain systemd[1]: Started
>>>> systemd-rfkill.service - Load/Save RF Kill Switch Status.
>>>> Apr 04 10:15:05 braindead.localdomain audit[1]: SERVICE_START pid=1
>>>> uid=0 auid=4294967295 ses=4294967295
>>>> subj=system_u:system_r:init_t:s0 msg='unit=systemd-rfkill
>>>> comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=?
>>>> terminal=? res=success'
>>>> Apr 04 10:15:05 braindead.localdomain kernel: Bluetooth: hci0: QCA
>>>> Product ID   :0x00000010
>>>> Apr 04 10:15:05 braindead.localdomain kernel: Bluetooth: hci0: QCA
>>>> SOC Version  :0x400a0200
>>>> Apr 04 10:15:05 braindead.localdomain kernel: Bluetooth: hci0: QCA
>>>> ROM Version  :0x00000200
>>>> Apr 04 10:15:05 braindead.localdomain kernel: Bluetooth: hci0: QCA
>>>> Patch Version:0x00003ac0
>>>> Apr 04 10:15:05 braindead.localdomain kernel: Bluetooth: hci0: QCA
>>>> controller version 0x02000200
>>>> Apr 04 10:15:05 braindead.localdomain kernel: Bluetooth: hci0: QCA
>>>> Downloading qca/htbtfw20.tlv
>>>> Apr 04 10:15:06 braindead.localdomain kernel: Bluetooth: hci0: QCA
>>>> Failed to send TLV segment (-110)
>>>> Apr 04 10:15:06 braindead.localdomain kernel: Bluetooth: hci0: QCA
>>>> Failed to download patch (-110)
>>>> Apr 04 10:15:06 braindead.localdomain kernel: Bluetooth: hci0: Retry
>>>> BT power ON:0
>>>> Apr 04 10:15:08 braindead.localdomain kernel: Bluetooth: hci0:
>>>> command 0xfc00 tx timeout
>>>> Apr 04 10:15:08 braindead.localdomain kernel: Bluetooth: hci0:
>>>> Reading QCA version information failed (-110)
>>>> Apr 04 10:15:08 braindead.localdomain kernel: Bluetooth: hci0: Retry
>>>> BT power ON:1
>>>> Apr 04 10:15:10 braindead.localdomain systemd[1]:
>>>> systemd-rfkill.service: Deactivated successfully.
>>>> Apr 04 10:15:10 braindead.localdomain audit[1]: SERVICE_STOP pid=1
>>>> uid=0 auid=4294967295 ses=4294967295
>>>> subj=system_u:system_r:init_t:s0 msg='unit=systemd-rfkill
>>>> comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=?
>>>> terminal=? res=success'
>>>> Apr 04 10:15:10 braindead.localdomain kernel: Bluetooth: hci0:
>>>> command 0xfc00 tx timeout
>>>> Apr 04 10:15:10 braindead.localdomain kernel: Bluetooth: hci0:
>>>> Reading QCA version information failed (-110)
>>>> Apr 04 10:15:10 braindead.localdomain kernel: Bluetooth: hci0: Retry
>>>> BT power ON:2
>>>> Apr 04 10:15:13 braindead.localdomain bluetoothd[986]: Failed to set
>>>> mode: Authentication Failed (0x05)
>>>> Apr 04 10:15:13 braindead.localdomain kernel: Bluetooth: hci0:
>>>> command 0xfc00 tx timeout
>>>> Apr 04 10:15:13 braindead.localdomain kernel: Bluetooth: hci0:
>>>> Reading QCA version information failed (-110)
>>>> Apr 04 10:15:15 braindead.localdomain chronyd[1065]: Selected source
>>>> 204.17.205.8 (2.fedora.pool.ntp.org)
>>>> Apr 04 10:15:22 braindead.localdomain systemd[1687]: Created slice
>>>> background.slice - User Background Tasks Slice.
>>>> Apr 04 10:15:22 braindead.localdomain systemd[1687]: Starting
>>>> systemd-tmpfiles-clean.service - Cleanup of User's Temporary Files
>>>> and Directories...
>>>> Apr 04 10:15:22 braindead.localdomain systemd[1687]: Finished
>>>> systemd-tmpfiles-clean.service - Cleanup of User's Temporary Files
>>>> and Directories.
>>>> Apr 04 10:15:38 braindead.localdomain audit: BPF prog-id=86 op=LOAD
>>>> Apr 04 10:15:38 braindead.localdomain systemd[1]: Starting
>>>> plocate-updatedb.service - Update the plocate database...
>>>> Apr 04 10:15:41 braindead.localdomain systemd[1687]: Started
>>>> vte-spawn-21527424-cb2d-479f-af17-22251e2b37a0.scope - VTE child
>>>> process 5144 launched by gnome-terminal-server process 4668.
>>>> Apr 04 10:15:53 braindead.localdomain systemd[1]:
>>>> plocate-updatedb.service: Deactivated successfully.
>>>> Apr 04 10:15:53 braindead.localdomain systemd[1]: Finished
>>>> plocate-updatedb.service - Update the plocate database.
>>>> Apr 04 10:15:53 braindead.localdomain systemd[1]:
>>>> plocate-updatedb.service: Consumed 6.802s CPU time.
>>>> Apr 04 10:15:53 braindead.localdomain audit[1]: SERVICE_START pid=1
>>>> uid=0 auid=4294967295 ses=4294967295
>>>> subj=system_u:system_r:init_t:s0 msg='unit=plocate-updatedb
>>>> comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=?
>>>> terminal=? res=success'
>>>> Apr 04 10:15:53 braindead.localdomain audit[1]: SERVICE_STOP pid=1
>>>> uid=0 auid=4294967295 ses=4294967295
>>>> subj=system_u:system_r:init_t:s0 msg='unit=plocate-updatedb
>>>> comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=?
>>>> terminal=? res=success'
>>>> Apr 04 10:15:54 braindead.localdomain audit: BPF prog-id=86 op=UNLOAD
>>>> Apr 04 10:16:13 braindead.localdomain baloo_file_extractor[5251]:
>>>> kf.idletime: Could not find any system poller plugin
>>>> Apr 04 10:16:13 braindead.localdomain baloo_file_extractor[5251]:
>>>> qt.core.qobject.connect: QObject::connect(KAbstractIdleTimePoller,
>>>> KIdleTime): invalid nullptr parameter
>>>> Apr 04 10:16:13 braindead.localdomain baloo_file_extractor[5251]:
>>>> qt.core.qobject.connect: QObject::connect(KAbstractIdleTimePoller,
>>>> KIdleTime): invalid nullptr parameter
>>>>
>>>> There's a bunch of errors in those logs starting with these two
>>>> seemingly important lines:
>>>>
>>>> Apr 04 10:15:06 braindead.localdomain kernel: Bluetooth: hci0: QCA
>>>> Failed to send TLV segment (-110)
>>>> Apr 04 10:15:06 braindead.localdomain kernel: Bluetooth: hci0: QCA
>>>> Failed to download patch (-110)
>>>
>>> Logs are mostly unchanges when restarting the bluetooth service after
>>> a cold boot with the bluetooth originally working.
>>>
>>>> FWIW, I get similar logs after logging into KDE Plasma. I also get
>>>> similar logs after a warm boot.
>>>>
>>>> This appears to be some kind of bug in the initialization of the
>>>> hardware. Is there any additional information I can provide to help
>>>> troubleshoot this problem.
>>>
>>> I will also say that the bluetooth appears to work throught a
>>> suspend/resume cycle as long as I don't restart the bluetooth service.
>>>
>>> Oh, and my laptop is a Dell 9310 if that helps.
>>
>> Kalle, I noticed that you reported having a Dell 9310 in 2021 in a
>> message on this very mailing list. Do you happen to still have that
>> laptop? If so, so you still test on that laptop at all? I am curious
>> if it is having the same issue I am experiencing?
>>
>>> Is there any other info I could collect that might be useful?
>>>
>>> I'm pretty new to troubleshooting a problem like this and would be
>>> happy to have any advice anyone might want to share.
>>>
>>> Thanks,
>>> wt
>>>
>>
>

--
You're more amazing than you think!

2024-04-09 20:03:00

by Wren Turkal

[permalink] [raw]
Subject: Re: QCA6390 bluetooth doesn't work after warm boot or disable/reenable

On 4/9/24 12:53 PM, Wren Turkal wrote:
> On 4/8/24 12:49 PM, Wren Turkal wrote:
>> +Marcel Holtmann <[email protected]>
>> +Luiz Augusto von Dentz <[email protected]>
>>
>> Added maintainers identified from the get_maintainer.pl script in the
>> kernel repo. Hoping to get some ideas for next steps.
>>
>> More contextual info below:
>>
>> On 4/6/24 1:27 PM, Wren Turkal wrote:
>>> +Kalle Valo since you have the same laptop
>>>
>>> On 4/6/24 1:16 PM, Wren Turkal wrote:
>>>> Sorry for the double send on the original message. I am still hoping
>>>> to get some help. I have added additional info below.
>>>>
>>>> On 4/4/24 12:14 PM, Wren Turkal wrote:
>>>>> Hey there ath11k/bluetooth folks,
>>>>>
>>>>> I am having a pretty major problem with QCA6930 for some time
>>>>> (maybe a year or two). I have this bluetooth device:
>>>>>
>>>>> 72:00.0 Unassigned class [ff00]: Qualcomm Technologies, Inc QCA6390
>>>>> Wireless Network Adapter
>>>>>
>>>>> This device appears to be driven by the ath11k module and others. I
>>>>> hope I am pinging the right lists.
>>>>>
>>>>> I am using Fedora Rawhide. Fully updated yesterday. My uname
>>>>> reports this:
>>>>>
>>>>> Linux braindead.localdomain
>>>>> 6.9.0-0.rc2.20240402git026e680b0a08.24.fc41.x86_64 #1 SMP
>>>>> PREEMPT_DYNAMIC Tue Apr  2 17:51:18 UTC 2024 x86_64 GNU/Linux
>>>>
>>>> Updated today. Here's the new uname:
>>>>
>>>> Linux braindead.localdomain
>>>> 6.9.0-0.rc2.20240405git8cb4a9a82b21.27.fc41.x86_64 #1 SMP
>>>> PREEMPT_DYNAMIC Fri Apr  5 16:48:07 UTC 2024 x86_64 GNU/Linux
>>
>> I looked at the current mainline kernel code. I found the following.
>>
>> I found that there was a patch authored by Zijun Hu that was supposed
>> to address a warm reboot issue on QCA6390 here:
>> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/drivers/bluetooth/hci_qca.c?h=v6.9-rc3&id=7e7bbddd029b644f00f0ffbfbc485ed71977d0d5
>>
>> The same code path from the above patch is now slightly different
>> because another patch authored by Krzysztof Kozlowski, namely:
>> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/drivers/bluetooth/hci_qca.c?h=v6.9-rc3&id=272970be3dabd24cbe50e393ffee8f04aec3b9a8
>>
>> I also see a few fixed over time in the btqca.c file. I wonder if any
>> of these are related.
>>
>> Unfortunately, none of these changes were made recently.
>>
>> Does anyone have an suggestions for next steps?
>
> I am trying to build kernels as old as 5.19 to start a bisect. I have
> been unsuccessful due to compiler warnings (presumably from newer
> version of gcc than were used at the time those kernels were released.
> Is there any secret sauce to getting these older kernels to build with
> newer gccs?

Specifically, I am getting this message when trying to build bzImage:
ld: warning: vmlinux has a LOAD segment with RWX permissions

Is there any way to allow the build despite that issue so that I can
just see if the kernel version can drive the bluetooth hardware correctly?

>>>>
>>>> I also noticed a new version of bluez. Here is the RPM package
>>>> version: bluez-5.73-3.fc41.x86_64
>>>>
>>>>> My main bluetooth device is  a Logitech MX 3 Mac mouse that uses
>>>>> bluetooth. When bluetooth fails, so does the mouse. I have power
>>>>> cycle my laptop when that happens. I'd love to help find a fix for
>>>>> this.
>>>>>
>>>>> The problem is that I cannot disable and re-enable the bluetooth on
>>>>> my system. Bluetooth also doesn't work after a warm boot. I have to
>>>>> power cycle my laptop to recover bluetooth funcitonality. I have
>>>>> tried the following:
>>>>>
>>>>> * logging into KDE Plasma (bluetooth stops working)
>>>>> * logging into GNOME (works on cold boot, fails on warm boot)
>>>>
>>>> I did notice that the mouse seems to work in Plasma until a few sec
>>>> after I see the background image appears. I suspect that Plasma is
>>>> disabling and reenabling the bluetooth where Gnome does not do that.
>>>>
>>>>> After logging into GNOME during a cold boot, I have also done
>>>>> "systemctl restart bluetooth.service". I get these journal logs
>>>>> during the stop;
>>>>>
>>>>> ➜  bt_kernel_bug cat journal-stop-bluetooth-service.log
>>>>> Apr 04 10:14:41 braindead.localdomain NetworkManager[1120]: <info>
>>>>> [1712250881.7060] device (F0:5C:77:F2:60:FC): state change:
>>>>> disconnected -> unmanaged (reason 'removed', sys-iface-state:
>>>>> 'removed')
>>>>> Apr 04 10:14:41 braindead.localdomain systemd[1]: Starting
>>>>> systemd-rfkill.service - Load/Save RF Kill Switch Status...
>>>>> Apr 04 10:14:41 braindead.localdomain systemd[1]: Started
>>>>> systemd-rfkill.service - Load/Save RF Kill Switch Status.
>>>>> Apr 04 10:14:41 braindead.localdomain audit[1]: SERVICE_START pid=1
>>>>> uid=0 auid=4294967295 ses=4294967295
>>>>> subj=system_u:system_r:init_t:s0 msg='unit=systemd-rfkill
>>>>> comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=?
>>>>> terminal=? res=success'
>>>>> Apr 04 10:14:46 braindead.localdomain systemd[1]:
>>>>> systemd-rfkill.service: Deactivated successfully.
>>>>> Apr 04 10:14:46 braindead.localdomain audit[1]: SERVICE_STOP pid=1
>>>>> uid=0 auid=4294967295 ses=4294967295
>>>>> subj=system_u:system_r:init_t:s0 msg='unit=systemd-rfkill
>>>>> comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=?
>>>>> terminal=? res=success'
>>>>>
>>>>> I get these journal logs during start:
>>>>>
>>>>> Apr 04 10:15:05 braindead.localdomain kernel: Bluetooth: hci0:
>>>>> setting up ROME/QCA6390
>>>>> Apr 04 10:15:05 braindead.localdomain systemd[1]: Starting
>>>>> systemd-rfkill.service - Load/Save RF Kill Switch Status...
>>>>> Apr 04 10:15:05 braindead.localdomain systemd[1]: Started
>>>>> systemd-rfkill.service - Load/Save RF Kill Switch Status.
>>>>> Apr 04 10:15:05 braindead.localdomain audit[1]: SERVICE_START pid=1
>>>>> uid=0 auid=4294967295 ses=4294967295
>>>>> subj=system_u:system_r:init_t:s0 msg='unit=systemd-rfkill
>>>>> comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=?
>>>>> terminal=? res=success'
>>>>> Apr 04 10:15:05 braindead.localdomain kernel: Bluetooth: hci0: QCA
>>>>> Product ID   :0x00000010
>>>>> Apr 04 10:15:05 braindead.localdomain kernel: Bluetooth: hci0: QCA
>>>>> SOC Version  :0x400a0200
>>>>> Apr 04 10:15:05 braindead.localdomain kernel: Bluetooth: hci0: QCA
>>>>> ROM Version  :0x00000200
>>>>> Apr 04 10:15:05 braindead.localdomain kernel: Bluetooth: hci0: QCA
>>>>> Patch Version:0x00003ac0
>>>>> Apr 04 10:15:05 braindead.localdomain kernel: Bluetooth: hci0: QCA
>>>>> controller version 0x02000200
>>>>> Apr 04 10:15:05 braindead.localdomain kernel: Bluetooth: hci0: QCA
>>>>> Downloading qca/htbtfw20.tlv
>>>>> Apr 04 10:15:06 braindead.localdomain kernel: Bluetooth: hci0: QCA
>>>>> Failed to send TLV segment (-110)
>>>>> Apr 04 10:15:06 braindead.localdomain kernel: Bluetooth: hci0: QCA
>>>>> Failed to download patch (-110)
>>>>> Apr 04 10:15:06 braindead.localdomain kernel: Bluetooth: hci0:
>>>>> Retry BT power ON:0
>>>>> Apr 04 10:15:08 braindead.localdomain kernel: Bluetooth: hci0:
>>>>> command 0xfc00 tx timeout
>>>>> Apr 04 10:15:08 braindead.localdomain kernel: Bluetooth: hci0:
>>>>> Reading QCA version information failed (-110)
>>>>> Apr 04 10:15:08 braindead.localdomain kernel: Bluetooth: hci0:
>>>>> Retry BT power ON:1
>>>>> Apr 04 10:15:10 braindead.localdomain systemd[1]:
>>>>> systemd-rfkill.service: Deactivated successfully.
>>>>> Apr 04 10:15:10 braindead.localdomain audit[1]: SERVICE_STOP pid=1
>>>>> uid=0 auid=4294967295 ses=4294967295
>>>>> subj=system_u:system_r:init_t:s0 msg='unit=systemd-rfkill
>>>>> comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=?
>>>>> terminal=? res=success'
>>>>> Apr 04 10:15:10 braindead.localdomain kernel: Bluetooth: hci0:
>>>>> command 0xfc00 tx timeout
>>>>> Apr 04 10:15:10 braindead.localdomain kernel: Bluetooth: hci0:
>>>>> Reading QCA version information failed (-110)
>>>>> Apr 04 10:15:10 braindead.localdomain kernel: Bluetooth: hci0:
>>>>> Retry BT power ON:2
>>>>> Apr 04 10:15:13 braindead.localdomain bluetoothd[986]: Failed to
>>>>> set mode: Authentication Failed (0x05)
>>>>> Apr 04 10:15:13 braindead.localdomain kernel: Bluetooth: hci0:
>>>>> command 0xfc00 tx timeout
>>>>> Apr 04 10:15:13 braindead.localdomain kernel: Bluetooth: hci0:
>>>>> Reading QCA version information failed (-110)
>>>>> Apr 04 10:15:15 braindead.localdomain chronyd[1065]: Selected
>>>>> source 204.17.205.8 (2.fedora.pool.ntp.org)
>>>>> Apr 04 10:15:22 braindead.localdomain systemd[1687]: Created slice
>>>>> background.slice - User Background Tasks Slice.
>>>>> Apr 04 10:15:22 braindead.localdomain systemd[1687]: Starting
>>>>> systemd-tmpfiles-clean.service - Cleanup of User's Temporary Files
>>>>> and Directories...
>>>>> Apr 04 10:15:22 braindead.localdomain systemd[1687]: Finished
>>>>> systemd-tmpfiles-clean.service - Cleanup of User's Temporary Files
>>>>> and Directories.
>>>>> Apr 04 10:15:38 braindead.localdomain audit: BPF prog-id=86 op=LOAD
>>>>> Apr 04 10:15:38 braindead.localdomain systemd[1]: Starting
>>>>> plocate-updatedb.service - Update the plocate database...
>>>>> Apr 04 10:15:41 braindead.localdomain systemd[1687]: Started
>>>>> vte-spawn-21527424-cb2d-479f-af17-22251e2b37a0.scope - VTE child
>>>>> process 5144 launched by gnome-terminal-server process 4668.
>>>>> Apr 04 10:15:53 braindead.localdomain systemd[1]:
>>>>> plocate-updatedb.service: Deactivated successfully.
>>>>> Apr 04 10:15:53 braindead.localdomain systemd[1]: Finished
>>>>> plocate-updatedb.service - Update the plocate database.
>>>>> Apr 04 10:15:53 braindead.localdomain systemd[1]:
>>>>> plocate-updatedb.service: Consumed 6.802s CPU time.
>>>>> Apr 04 10:15:53 braindead.localdomain audit[1]: SERVICE_START pid=1
>>>>> uid=0 auid=4294967295 ses=4294967295
>>>>> subj=system_u:system_r:init_t:s0 msg='unit=plocate-updatedb
>>>>> comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=?
>>>>> terminal=? res=success'
>>>>> Apr 04 10:15:53 braindead.localdomain audit[1]: SERVICE_STOP pid=1
>>>>> uid=0 auid=4294967295 ses=4294967295
>>>>> subj=system_u:system_r:init_t:s0 msg='unit=plocate-updatedb
>>>>> comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=?
>>>>> terminal=? res=success'
>>>>> Apr 04 10:15:54 braindead.localdomain audit: BPF prog-id=86 op=UNLOAD
>>>>> Apr 04 10:16:13 braindead.localdomain baloo_file_extractor[5251]:
>>>>> kf.idletime: Could not find any system poller plugin
>>>>> Apr 04 10:16:13 braindead.localdomain baloo_file_extractor[5251]:
>>>>> qt.core.qobject.connect: QObject::connect(KAbstractIdleTimePoller,
>>>>> KIdleTime): invalid nullptr parameter
>>>>> Apr 04 10:16:13 braindead.localdomain baloo_file_extractor[5251]:
>>>>> qt.core.qobject.connect: QObject::connect(KAbstractIdleTimePoller,
>>>>> KIdleTime): invalid nullptr parameter
>>>>>
>>>>> There's a bunch of errors in those logs starting with these two
>>>>> seemingly important lines:
>>>>>
>>>>> Apr 04 10:15:06 braindead.localdomain kernel: Bluetooth: hci0: QCA
>>>>> Failed to send TLV segment (-110)
>>>>> Apr 04 10:15:06 braindead.localdomain kernel: Bluetooth: hci0: QCA
>>>>> Failed to download patch (-110)
>>>>
>>>> Logs are mostly unchanges when restarting the bluetooth service
>>>> after a cold boot with the bluetooth originally working.
>>>>
>>>>> FWIW, I get similar logs after logging into KDE Plasma. I also get
>>>>> similar logs after a warm boot.
>>>>>
>>>>> This appears to be some kind of bug in the initialization of the
>>>>> hardware. Is there any additional information I can provide to help
>>>>> troubleshoot this problem.
>>>>
>>>> I will also say that the bluetooth appears to work throught a
>>>> suspend/resume cycle as long as I don't restart the bluetooth service.
>>>>
>>>> Oh, and my laptop is a Dell 9310 if that helps.
>>>
>>> Kalle, I noticed that you reported having a Dell 9310 in 2021 in a
>>> message on this very mailing list. Do you happen to still have that
>>> laptop? If so, so you still test on that laptop at all? I am curious
>>> if it is having the same issue I am experiencing?
>>>
>>>> Is there any other info I could collect that might be useful?
>>>>
>>>> I'm pretty new to troubleshooting a problem like this and would be
>>>> happy to have any advice anyone might want to share.
>>>>
>>>> Thanks,
>>>> wt
>>>>
>>>
>>
>

--
You're more amazing than you think!

2024-04-09 20:10:00

by Luiz Augusto von Dentz

[permalink] [raw]
Subject: Re: QCA6390 bluetooth doesn't work after warm boot or disable/reenable

Hi Wren,

On Tue, Apr 9, 2024 at 3:53 PM Wren Turkal <[email protected]> wrote:
>
> On 4/8/24 12:49 PM, Wren Turkal wrote:
> > +Marcel Holtmann <[email protected]>
> > +Luiz Augusto von Dentz <[email protected]>
> >
> > Added maintainers identified from the get_maintainer.pl script in the
> > kernel repo. Hoping to get some ideas for next steps.
> >
> > More contextual info below:
> >
> > On 4/6/24 1:27 PM, Wren Turkal wrote:
> >> +Kalle Valo since you have the same laptop
> >>
> >> On 4/6/24 1:16 PM, Wren Turkal wrote:
> >>> Sorry for the double send on the original message. I am still hoping
> >>> to get some help. I have added additional info below.
> >>>
> >>> On 4/4/24 12:14 PM, Wren Turkal wrote:
> >>>> Hey there ath11k/bluetooth folks,
> >>>>
> >>>> I am having a pretty major problem with QCA6930 for some time (maybe
> >>>> a year or two). I have this bluetooth device:
> >>>>
> >>>> 72:00.0 Unassigned class [ff00]: Qualcomm Technologies, Inc QCA6390
> >>>> Wireless Network Adapter
> >>>>
> >>>> This device appears to be driven by the ath11k module and others. I
> >>>> hope I am pinging the right lists.
> >>>>
> >>>> I am using Fedora Rawhide. Fully updated yesterday. My uname reports
> >>>> this:
> >>>>
> >>>> Linux braindead.localdomain
> >>>> 6.9.0-0.rc2.20240402git026e680b0a08.24.fc41.x86_64 #1 SMP
> >>>> PREEMPT_DYNAMIC Tue Apr 2 17:51:18 UTC 2024 x86_64 GNU/Linux
> >>>
> >>> Updated today. Here's the new uname:
> >>>
> >>> Linux braindead.localdomain
> >>> 6.9.0-0.rc2.20240405git8cb4a9a82b21.27.fc41.x86_64 #1 SMP
> >>> PREEMPT_DYNAMIC Fri Apr 5 16:48:07 UTC 2024 x86_64 GNU/Linux
> >
> > I looked at the current mainline kernel code. I found the following.
> >
> > I found that there was a patch authored by Zijun Hu that was supposed to
> > address a warm reboot issue on QCA6390 here:
> > https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/drivers/bluetooth/hci_qca.c?h=v6.9-rc3&id=7e7bbddd029b644f00f0ffbfbc485ed71977d0d5
> >
> > The same code path from the above patch is now slightly different
> > because another patch authored by Krzysztof Kozlowski, namely:
> > https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/drivers/bluetooth/hci_qca.c?h=v6.9-rc3&id=272970be3dabd24cbe50e393ffee8f04aec3b9a8
> >
> > I also see a few fixed over time in the btqca.c file. I wonder if any of
> > these are related.
> >
> > Unfortunately, none of these changes were made recently.
> >
> > Does anyone have an suggestions for next steps?
>
> I am trying to build kernels as old as 5.19 to start a bisect. I have
> been unsuccessful due to compiler warnings (presumably from newer
> version of gcc than were used at the time those kernels were released.
> Is there any secret sauce to getting these older kernels to build with
> newer gccs?

5.19 seems a little too old, imo, or has it been broken for that long,
did you at least tried with bluetooth-next? Try contacting the people
who actually wrote the driver.

> >>>
> >>> I also noticed a new version of bluez. Here is the RPM package
> >>> version: bluez-5.73-3.fc41.x86_64
> >>>
> >>>> My main bluetooth device is a Logitech MX 3 Mac mouse that uses
> >>>> bluetooth. When bluetooth fails, so does the mouse. I have power
> >>>> cycle my laptop when that happens. I'd love to help find a fix for
> >>>> this.
> >>>>
> >>>> The problem is that I cannot disable and re-enable the bluetooth on
> >>>> my system. Bluetooth also doesn't work after a warm boot. I have to
> >>>> power cycle my laptop to recover bluetooth funcitonality. I have
> >>>> tried the following:
> >>>>
> >>>> * logging into KDE Plasma (bluetooth stops working)
> >>>> * logging into GNOME (works on cold boot, fails on warm boot)
> >>>
> >>> I did notice that the mouse seems to work in Plasma until a few sec
> >>> after I see the background image appears. I suspect that Plasma is
> >>> disabling and reenabling the bluetooth where Gnome does not do that.
> >>>
> >>>> After logging into GNOME during a cold boot, I have also done
> >>>> "systemctl restart bluetooth.service". I get these journal logs
> >>>> during the stop;
> >>>>
> >>>> ➜ bt_kernel_bug cat journal-stop-bluetooth-service.log
> >>>> Apr 04 10:14:41 braindead.localdomain NetworkManager[1120]: <info>
> >>>> [1712250881.7060] device (F0:5C:77:F2:60:FC): state change:
> >>>> disconnected -> unmanaged (reason 'removed', sys-iface-state:
> >>>> 'removed')
> >>>> Apr 04 10:14:41 braindead.localdomain systemd[1]: Starting
> >>>> systemd-rfkill.service - Load/Save RF Kill Switch Status...
> >>>> Apr 04 10:14:41 braindead.localdomain systemd[1]: Started
> >>>> systemd-rfkill.service - Load/Save RF Kill Switch Status.
> >>>> Apr 04 10:14:41 braindead.localdomain audit[1]: SERVICE_START pid=1
> >>>> uid=0 auid=4294967295 ses=4294967295
> >>>> subj=system_u:system_r:init_t:s0 msg='unit=systemd-rfkill
> >>>> comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=?
> >>>> terminal=? res=success'
> >>>> Apr 04 10:14:46 braindead.localdomain systemd[1]:
> >>>> systemd-rfkill.service: Deactivated successfully.
> >>>> Apr 04 10:14:46 braindead.localdomain audit[1]: SERVICE_STOP pid=1
> >>>> uid=0 auid=4294967295 ses=4294967295
> >>>> subj=system_u:system_r:init_t:s0 msg='unit=systemd-rfkill
> >>>> comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=?
> >>>> terminal=? res=success'
> >>>>
> >>>> I get these journal logs during start:
> >>>>
> >>>> Apr 04 10:15:05 braindead.localdomain kernel: Bluetooth: hci0:
> >>>> setting up ROME/QCA6390
> >>>> Apr 04 10:15:05 braindead.localdomain systemd[1]: Starting
> >>>> systemd-rfkill.service - Load/Save RF Kill Switch Status...
> >>>> Apr 04 10:15:05 braindead.localdomain systemd[1]: Started
> >>>> systemd-rfkill.service - Load/Save RF Kill Switch Status.
> >>>> Apr 04 10:15:05 braindead.localdomain audit[1]: SERVICE_START pid=1
> >>>> uid=0 auid=4294967295 ses=4294967295
> >>>> subj=system_u:system_r:init_t:s0 msg='unit=systemd-rfkill
> >>>> comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=?
> >>>> terminal=? res=success'
> >>>> Apr 04 10:15:05 braindead.localdomain kernel: Bluetooth: hci0: QCA
> >>>> Product ID :0x00000010
> >>>> Apr 04 10:15:05 braindead.localdomain kernel: Bluetooth: hci0: QCA
> >>>> SOC Version :0x400a0200
> >>>> Apr 04 10:15:05 braindead.localdomain kernel: Bluetooth: hci0: QCA
> >>>> ROM Version :0x00000200
> >>>> Apr 04 10:15:05 braindead.localdomain kernel: Bluetooth: hci0: QCA
> >>>> Patch Version:0x00003ac0
> >>>> Apr 04 10:15:05 braindead.localdomain kernel: Bluetooth: hci0: QCA
> >>>> controller version 0x02000200
> >>>> Apr 04 10:15:05 braindead.localdomain kernel: Bluetooth: hci0: QCA
> >>>> Downloading qca/htbtfw20.tlv
> >>>> Apr 04 10:15:06 braindead.localdomain kernel: Bluetooth: hci0: QCA
> >>>> Failed to send TLV segment (-110)
> >>>> Apr 04 10:15:06 braindead.localdomain kernel: Bluetooth: hci0: QCA
> >>>> Failed to download patch (-110)
> >>>> Apr 04 10:15:06 braindead.localdomain kernel: Bluetooth: hci0: Retry
> >>>> BT power ON:0
> >>>> Apr 04 10:15:08 braindead.localdomain kernel: Bluetooth: hci0:
> >>>> command 0xfc00 tx timeout
> >>>> Apr 04 10:15:08 braindead.localdomain kernel: Bluetooth: hci0:
> >>>> Reading QCA version information failed (-110)
> >>>> Apr 04 10:15:08 braindead.localdomain kernel: Bluetooth: hci0: Retry
> >>>> BT power ON:1
> >>>> Apr 04 10:15:10 braindead.localdomain systemd[1]:
> >>>> systemd-rfkill.service: Deactivated successfully.
> >>>> Apr 04 10:15:10 braindead.localdomain audit[1]: SERVICE_STOP pid=1
> >>>> uid=0 auid=4294967295 ses=4294967295
> >>>> subj=system_u:system_r:init_t:s0 msg='unit=systemd-rfkill
> >>>> comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=?
> >>>> terminal=? res=success'
> >>>> Apr 04 10:15:10 braindead.localdomain kernel: Bluetooth: hci0:
> >>>> command 0xfc00 tx timeout
> >>>> Apr 04 10:15:10 braindead.localdomain kernel: Bluetooth: hci0:
> >>>> Reading QCA version information failed (-110)
> >>>> Apr 04 10:15:10 braindead.localdomain kernel: Bluetooth: hci0: Retry
> >>>> BT power ON:2
> >>>> Apr 04 10:15:13 braindead.localdomain bluetoothd[986]: Failed to set
> >>>> mode: Authentication Failed (0x05)
> >>>> Apr 04 10:15:13 braindead.localdomain kernel: Bluetooth: hci0:
> >>>> command 0xfc00 tx timeout
> >>>> Apr 04 10:15:13 braindead.localdomain kernel: Bluetooth: hci0:
> >>>> Reading QCA version information failed (-110)
> >>>> Apr 04 10:15:15 braindead.localdomain chronyd[1065]: Selected source
> >>>> 204.17.205.8 (2.fedora.pool.ntp.org)
> >>>> Apr 04 10:15:22 braindead.localdomain systemd[1687]: Created slice
> >>>> background.slice - User Background Tasks Slice.
> >>>> Apr 04 10:15:22 braindead.localdomain systemd[1687]: Starting
> >>>> systemd-tmpfiles-clean.service - Cleanup of User's Temporary Files
> >>>> and Directories...
> >>>> Apr 04 10:15:22 braindead.localdomain systemd[1687]: Finished
> >>>> systemd-tmpfiles-clean.service - Cleanup of User's Temporary Files
> >>>> and Directories.
> >>>> Apr 04 10:15:38 braindead.localdomain audit: BPF prog-id=86 op=LOAD
> >>>> Apr 04 10:15:38 braindead.localdomain systemd[1]: Starting
> >>>> plocate-updatedb.service - Update the plocate database...
> >>>> Apr 04 10:15:41 braindead.localdomain systemd[1687]: Started
> >>>> vte-spawn-21527424-cb2d-479f-af17-22251e2b37a0.scope - VTE child
> >>>> process 5144 launched by gnome-terminal-server process 4668.
> >>>> Apr 04 10:15:53 braindead.localdomain systemd[1]:
> >>>> plocate-updatedb.service: Deactivated successfully.
> >>>> Apr 04 10:15:53 braindead.localdomain systemd[1]: Finished
> >>>> plocate-updatedb.service - Update the plocate database.
> >>>> Apr 04 10:15:53 braindead.localdomain systemd[1]:
> >>>> plocate-updatedb.service: Consumed 6.802s CPU time.
> >>>> Apr 04 10:15:53 braindead.localdomain audit[1]: SERVICE_START pid=1
> >>>> uid=0 auid=4294967295 ses=4294967295
> >>>> subj=system_u:system_r:init_t:s0 msg='unit=plocate-updatedb
> >>>> comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=?
> >>>> terminal=? res=success'
> >>>> Apr 04 10:15:53 braindead.localdomain audit[1]: SERVICE_STOP pid=1
> >>>> uid=0 auid=4294967295 ses=4294967295
> >>>> subj=system_u:system_r:init_t:s0 msg='unit=plocate-updatedb
> >>>> comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=?
> >>>> terminal=? res=success'
> >>>> Apr 04 10:15:54 braindead.localdomain audit: BPF prog-id=86 op=UNLOAD
> >>>> Apr 04 10:16:13 braindead.localdomain baloo_file_extractor[5251]:
> >>>> kf.idletime: Could not find any system poller plugin
> >>>> Apr 04 10:16:13 braindead.localdomain baloo_file_extractor[5251]:
> >>>> qt.core.qobject.connect: QObject::connect(KAbstractIdleTimePoller,
> >>>> KIdleTime): invalid nullptr parameter
> >>>> Apr 04 10:16:13 braindead.localdomain baloo_file_extractor[5251]:
> >>>> qt.core.qobject.connect: QObject::connect(KAbstractIdleTimePoller,
> >>>> KIdleTime): invalid nullptr parameter
> >>>>
> >>>> There's a bunch of errors in those logs starting with these two
> >>>> seemingly important lines:
> >>>>
> >>>> Apr 04 10:15:06 braindead.localdomain kernel: Bluetooth: hci0: QCA
> >>>> Failed to send TLV segment (-110)
> >>>> Apr 04 10:15:06 braindead.localdomain kernel: Bluetooth: hci0: QCA
> >>>> Failed to download patch (-110)
> >>>
> >>> Logs are mostly unchanges when restarting the bluetooth service after
> >>> a cold boot with the bluetooth originally working.
> >>>
> >>>> FWIW, I get similar logs after logging into KDE Plasma. I also get
> >>>> similar logs after a warm boot.
> >>>>
> >>>> This appears to be some kind of bug in the initialization of the
> >>>> hardware. Is there any additional information I can provide to help
> >>>> troubleshoot this problem.
> >>>
> >>> I will also say that the bluetooth appears to work throught a
> >>> suspend/resume cycle as long as I don't restart the bluetooth service.
> >>>
> >>> Oh, and my laptop is a Dell 9310 if that helps.
> >>
> >> Kalle, I noticed that you reported having a Dell 9310 in 2021 in a
> >> message on this very mailing list. Do you happen to still have that
> >> laptop? If so, so you still test on that laptop at all? I am curious
> >> if it is having the same issue I am experiencing?
> >>
> >>> Is there any other info I could collect that might be useful?
> >>>
> >>> I'm pretty new to troubleshooting a problem like this and would be
> >>> happy to have any advice anyone might want to share.
> >>>
> >>> Thanks,
> >>> wt
> >>>
> >>
> >
>
> --
> You're more amazing than you think!



--
Luiz Augusto von Dentz

2024-04-09 20:10:01

by Wren Turkal

[permalink] [raw]
Subject: Re: QCA6390 bluetooth doesn't work after warm boot or disable/reenable

On 4/9/24 1:03 PM, Luiz Augusto von Dentz wrote:
> Hi Wren,
>
> On Tue, Apr 9, 2024 at 3:53 PM Wren Turkal <[email protected]> wrote:
>>
>> On 4/8/24 12:49 PM, Wren Turkal wrote:
>>> +Marcel Holtmann <[email protected]>
>>> +Luiz Augusto von Dentz <[email protected]>
>>>
>>> Added maintainers identified from the get_maintainer.pl script in the
>>> kernel repo. Hoping to get some ideas for next steps.
>>>
>>> More contextual info below:
>>>
>>> On 4/6/24 1:27 PM, Wren Turkal wrote:
>>>> +Kalle Valo since you have the same laptop
>>>>
>>>> On 4/6/24 1:16 PM, Wren Turkal wrote:
>>>>> Sorry for the double send on the original message. I am still hoping
>>>>> to get some help. I have added additional info below.
>>>>>
>>>>> On 4/4/24 12:14 PM, Wren Turkal wrote:
>>>>>> Hey there ath11k/bluetooth folks,
>>>>>>
>>>>>> I am having a pretty major problem with QCA6930 for some time (maybe
>>>>>> a year or two). I have this bluetooth device:
>>>>>>
>>>>>> 72:00.0 Unassigned class [ff00]: Qualcomm Technologies, Inc QCA6390
>>>>>> Wireless Network Adapter
>>>>>>
>>>>>> This device appears to be driven by the ath11k module and others. I
>>>>>> hope I am pinging the right lists.
>>>>>>
>>>>>> I am using Fedora Rawhide. Fully updated yesterday. My uname reports
>>>>>> this:
>>>>>>
>>>>>> Linux braindead.localdomain
>>>>>> 6.9.0-0.rc2.20240402git026e680b0a08.24.fc41.x86_64 #1 SMP
>>>>>> PREEMPT_DYNAMIC Tue Apr 2 17:51:18 UTC 2024 x86_64 GNU/Linux
>>>>>
>>>>> Updated today. Here's the new uname:
>>>>>
>>>>> Linux braindead.localdomain
>>>>> 6.9.0-0.rc2.20240405git8cb4a9a82b21.27.fc41.x86_64 #1 SMP
>>>>> PREEMPT_DYNAMIC Fri Apr 5 16:48:07 UTC 2024 x86_64 GNU/Linux
>>>
>>> I looked at the current mainline kernel code. I found the following.
>>>
>>> I found that there was a patch authored by Zijun Hu that was supposed to
>>> address a warm reboot issue on QCA6390 here:
>>> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/drivers/bluetooth/hci_qca.c?h=v6.9-rc3&id=7e7bbddd029b644f00f0ffbfbc485ed71977d0d5
>>>
>>> The same code path from the above patch is now slightly different
>>> because another patch authored by Krzysztof Kozlowski, namely:
>>> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/drivers/bluetooth/hci_qca.c?h=v6.9-rc3&id=272970be3dabd24cbe50e393ffee8f04aec3b9a8
>>>
>>> I also see a few fixed over time in the btqca.c file. I wonder if any of
>>> these are related.
>>>
>>> Unfortunately, none of these changes were made recently.
>>>
>>> Does anyone have an suggestions for next steps?
>>
>> I am trying to build kernels as old as 5.19 to start a bisect. I have
>> been unsuccessful due to compiler warnings (presumably from newer
>> version of gcc than were used at the time those kernels were released.
>> Is there any secret sauce to getting these older kernels to build with
>> newer gccs?
>
> 5.19 seems a little too old, imo, or has it been broken for that long,
> did you at least tried with bluetooth-next? Try contacting the people
> who actually wrote the driver.

I tried adding the folks on the To: line who were involved in writing
the driver. Having had much luck yet.

This is the actual message I am getting to while trying to build the
kernel. I turned off the CONFIG_DEBUG_INFO_BTF option to try to get a
build. That seems to have worked.

Is there some secret method of getting more debug messages from the kernel.

Also, is there some way to get access to the qualcomm docs for this
hardware? I am not some official kernel dev. Do you know anyone that
could help with that?
FAILED: load BTF from vmlinux: Invalid argument
>
>>>>>
>>>>> I also noticed a new version of bluez. Here is the RPM package
>>>>> version: bluez-5.73-3.fc41.x86_64
>>>>>
>>>>>> My main bluetooth device is a Logitech MX 3 Mac mouse that uses
>>>>>> bluetooth. When bluetooth fails, so does the mouse. I have power
>>>>>> cycle my laptop when that happens. I'd love to help find a fix for
>>>>>> this.
>>>>>>
>>>>>> The problem is that I cannot disable and re-enable the bluetooth on
>>>>>> my system. Bluetooth also doesn't work after a warm boot. I have to
>>>>>> power cycle my laptop to recover bluetooth funcitonality. I have
>>>>>> tried the following:
>>>>>>
>>>>>> * logging into KDE Plasma (bluetooth stops working)
>>>>>> * logging into GNOME (works on cold boot, fails on warm boot)
>>>>>
>>>>> I did notice that the mouse seems to work in Plasma until a few sec
>>>>> after I see the background image appears. I suspect that Plasma is
>>>>> disabling and reenabling the bluetooth where Gnome does not do that.
>>>>>
>>>>>> After logging into GNOME during a cold boot, I have also done
>>>>>> "systemctl restart bluetooth.service". I get these journal logs
>>>>>> during the stop;
>>>>>>
>>>>>> ➜ bt_kernel_bug cat journal-stop-bluetooth-service.log
>>>>>> Apr 04 10:14:41 braindead.localdomain NetworkManager[1120]: <info>
>>>>>> [1712250881.7060] device (F0:5C:77:F2:60:FC): state change:
>>>>>> disconnected -> unmanaged (reason 'removed', sys-iface-state:
>>>>>> 'removed')
>>>>>> Apr 04 10:14:41 braindead.localdomain systemd[1]: Starting
>>>>>> systemd-rfkill.service - Load/Save RF Kill Switch Status...
>>>>>> Apr 04 10:14:41 braindead.localdomain systemd[1]: Started
>>>>>> systemd-rfkill.service - Load/Save RF Kill Switch Status.
>>>>>> Apr 04 10:14:41 braindead.localdomain audit[1]: SERVICE_START pid=1
>>>>>> uid=0 auid=4294967295 ses=4294967295
>>>>>> subj=system_u:system_r:init_t:s0 msg='unit=systemd-rfkill
>>>>>> comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=?
>>>>>> terminal=? res=success'
>>>>>> Apr 04 10:14:46 braindead.localdomain systemd[1]:
>>>>>> systemd-rfkill.service: Deactivated successfully.
>>>>>> Apr 04 10:14:46 braindead.localdomain audit[1]: SERVICE_STOP pid=1
>>>>>> uid=0 auid=4294967295 ses=4294967295
>>>>>> subj=system_u:system_r:init_t:s0 msg='unit=systemd-rfkill
>>>>>> comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=?
>>>>>> terminal=? res=success'
>>>>>>
>>>>>> I get these journal logs during start:
>>>>>>
>>>>>> Apr 04 10:15:05 braindead.localdomain kernel: Bluetooth: hci0:
>>>>>> setting up ROME/QCA6390
>>>>>> Apr 04 10:15:05 braindead.localdomain systemd[1]: Starting
>>>>>> systemd-rfkill.service - Load/Save RF Kill Switch Status...
>>>>>> Apr 04 10:15:05 braindead.localdomain systemd[1]: Started
>>>>>> systemd-rfkill.service - Load/Save RF Kill Switch Status.
>>>>>> Apr 04 10:15:05 braindead.localdomain audit[1]: SERVICE_START pid=1
>>>>>> uid=0 auid=4294967295 ses=4294967295
>>>>>> subj=system_u:system_r:init_t:s0 msg='unit=systemd-rfkill
>>>>>> comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=?
>>>>>> terminal=? res=success'
>>>>>> Apr 04 10:15:05 braindead.localdomain kernel: Bluetooth: hci0: QCA
>>>>>> Product ID :0x00000010
>>>>>> Apr 04 10:15:05 braindead.localdomain kernel: Bluetooth: hci0: QCA
>>>>>> SOC Version :0x400a0200
>>>>>> Apr 04 10:15:05 braindead.localdomain kernel: Bluetooth: hci0: QCA
>>>>>> ROM Version :0x00000200
>>>>>> Apr 04 10:15:05 braindead.localdomain kernel: Bluetooth: hci0: QCA
>>>>>> Patch Version:0x00003ac0
>>>>>> Apr 04 10:15:05 braindead.localdomain kernel: Bluetooth: hci0: QCA
>>>>>> controller version 0x02000200
>>>>>> Apr 04 10:15:05 braindead.localdomain kernel: Bluetooth: hci0: QCA
>>>>>> Downloading qca/htbtfw20.tlv
>>>>>> Apr 04 10:15:06 braindead.localdomain kernel: Bluetooth: hci0: QCA
>>>>>> Failed to send TLV segment (-110)
>>>>>> Apr 04 10:15:06 braindead.localdomain kernel: Bluetooth: hci0: QCA
>>>>>> Failed to download patch (-110)
>>>>>> Apr 04 10:15:06 braindead.localdomain kernel: Bluetooth: hci0: Retry
>>>>>> BT power ON:0
>>>>>> Apr 04 10:15:08 braindead.localdomain kernel: Bluetooth: hci0:
>>>>>> command 0xfc00 tx timeout
>>>>>> Apr 04 10:15:08 braindead.localdomain kernel: Bluetooth: hci0:
>>>>>> Reading QCA version information failed (-110)
>>>>>> Apr 04 10:15:08 braindead.localdomain kernel: Bluetooth: hci0: Retry
>>>>>> BT power ON:1
>>>>>> Apr 04 10:15:10 braindead.localdomain systemd[1]:
>>>>>> systemd-rfkill.service: Deactivated successfully.
>>>>>> Apr 04 10:15:10 braindead.localdomain audit[1]: SERVICE_STOP pid=1
>>>>>> uid=0 auid=4294967295 ses=4294967295
>>>>>> subj=system_u:system_r:init_t:s0 msg='unit=systemd-rfkill
>>>>>> comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=?
>>>>>> terminal=? res=success'
>>>>>> Apr 04 10:15:10 braindead.localdomain kernel: Bluetooth: hci0:
>>>>>> command 0xfc00 tx timeout
>>>>>> Apr 04 10:15:10 braindead.localdomain kernel: Bluetooth: hci0:
>>>>>> Reading QCA version information failed (-110)
>>>>>> Apr 04 10:15:10 braindead.localdomain kernel: Bluetooth: hci0: Retry
>>>>>> BT power ON:2
>>>>>> Apr 04 10:15:13 braindead.localdomain bluetoothd[986]: Failed to set
>>>>>> mode: Authentication Failed (0x05)
>>>>>> Apr 04 10:15:13 braindead.localdomain kernel: Bluetooth: hci0:
>>>>>> command 0xfc00 tx timeout
>>>>>> Apr 04 10:15:13 braindead.localdomain kernel: Bluetooth: hci0:
>>>>>> Reading QCA version information failed (-110)
>>>>>> Apr 04 10:15:15 braindead.localdomain chronyd[1065]: Selected source
>>>>>> 204.17.205.8 (2.fedora.pool.ntp.org)
>>>>>> Apr 04 10:15:22 braindead.localdomain systemd[1687]: Created slice
>>>>>> background.slice - User Background Tasks Slice.
>>>>>> Apr 04 10:15:22 braindead.localdomain systemd[1687]: Starting
>>>>>> systemd-tmpfiles-clean.service - Cleanup of User's Temporary Files
>>>>>> and Directories...
>>>>>> Apr 04 10:15:22 braindead.localdomain systemd[1687]: Finished
>>>>>> systemd-tmpfiles-clean.service - Cleanup of User's Temporary Files
>>>>>> and Directories.
>>>>>> Apr 04 10:15:38 braindead.localdomain audit: BPF prog-id=86 op=LOAD
>>>>>> Apr 04 10:15:38 braindead.localdomain systemd[1]: Starting
>>>>>> plocate-updatedb.service - Update the plocate database...
>>>>>> Apr 04 10:15:41 braindead.localdomain systemd[1687]: Started
>>>>>> vte-spawn-21527424-cb2d-479f-af17-22251e2b37a0.scope - VTE child
>>>>>> process 5144 launched by gnome-terminal-server process 4668.
>>>>>> Apr 04 10:15:53 braindead.localdomain systemd[1]:
>>>>>> plocate-updatedb.service: Deactivated successfully.
>>>>>> Apr 04 10:15:53 braindead.localdomain systemd[1]: Finished
>>>>>> plocate-updatedb.service - Update the plocate database.
>>>>>> Apr 04 10:15:53 braindead.localdomain systemd[1]:
>>>>>> plocate-updatedb.service: Consumed 6.802s CPU time.
>>>>>> Apr 04 10:15:53 braindead.localdomain audit[1]: SERVICE_START pid=1
>>>>>> uid=0 auid=4294967295 ses=4294967295
>>>>>> subj=system_u:system_r:init_t:s0 msg='unit=plocate-updatedb
>>>>>> comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=?
>>>>>> terminal=? res=success'
>>>>>> Apr 04 10:15:53 braindead.localdomain audit[1]: SERVICE_STOP pid=1
>>>>>> uid=0 auid=4294967295 ses=4294967295
>>>>>> subj=system_u:system_r:init_t:s0 msg='unit=plocate-updatedb
>>>>>> comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=?
>>>>>> terminal=? res=success'
>>>>>> Apr 04 10:15:54 braindead.localdomain audit: BPF prog-id=86 op=UNLOAD
>>>>>> Apr 04 10:16:13 braindead.localdomain baloo_file_extractor[5251]:
>>>>>> kf.idletime: Could not find any system poller plugin
>>>>>> Apr 04 10:16:13 braindead.localdomain baloo_file_extractor[5251]:
>>>>>> qt.core.qobject.connect: QObject::connect(KAbstractIdleTimePoller,
>>>>>> KIdleTime): invalid nullptr parameter
>>>>>> Apr 04 10:16:13 braindead.localdomain baloo_file_extractor[5251]:
>>>>>> qt.core.qobject.connect: QObject::connect(KAbstractIdleTimePoller,
>>>>>> KIdleTime): invalid nullptr parameter
>>>>>>
>>>>>> There's a bunch of errors in those logs starting with these two
>>>>>> seemingly important lines:
>>>>>>
>>>>>> Apr 04 10:15:06 braindead.localdomain kernel: Bluetooth: hci0: QCA
>>>>>> Failed to send TLV segment (-110)
>>>>>> Apr 04 10:15:06 braindead.localdomain kernel: Bluetooth: hci0: QCA
>>>>>> Failed to download patch (-110)
>>>>>
>>>>> Logs are mostly unchanges when restarting the bluetooth service after
>>>>> a cold boot with the bluetooth originally working.
>>>>>
>>>>>> FWIW, I get similar logs after logging into KDE Plasma. I also get
>>>>>> similar logs after a warm boot.
>>>>>>
>>>>>> This appears to be some kind of bug in the initialization of the
>>>>>> hardware. Is there any additional information I can provide to help
>>>>>> troubleshoot this problem.
>>>>>
>>>>> I will also say that the bluetooth appears to work throught a
>>>>> suspend/resume cycle as long as I don't restart the bluetooth service.
>>>>>
>>>>> Oh, and my laptop is a Dell 9310 if that helps.
>>>>
>>>> Kalle, I noticed that you reported having a Dell 9310 in 2021 in a
>>>> message on this very mailing list. Do you happen to still have that
>>>> laptop? If so, so you still test on that laptop at all? I am curious
>>>> if it is having the same issue I am experiencing?
>>>>
>>>>> Is there any other info I could collect that might be useful?
>>>>>
>>>>> I'm pretty new to troubleshooting a problem like this and would be
>>>>> happy to have any advice anyone might want to share.
>>>>>
>>>>> Thanks,
>>>>> wt
>>>>>
>>>>
>>>
>>
>> --
>> You're more amazing than you think!
>
>
>

--
You're more amazing than you think!

2024-04-09 20:11:36

by Wren Turkal

[permalink] [raw]
Subject: Re: QCA6390 bluetooth doesn't work after warm boot or disable/reenable

On 4/9/24 1:03 PM, Luiz Augusto von Dentz wrote:
> 5.19 seems a little too old, imo, or has it been broken for that long,
> did you at least tried with bluetooth-next? Try contacting the people
> who actually wrote the driver.

Sorry, I didn't answer your question. Yes, I do think it's been broken
for longer than that, but I wanted to confirm.

wt
--
You're more amazing than you think!

2024-04-10 07:21:47

by Kalle Valo

[permalink] [raw]
Subject: Re: QCA6390 bluetooth doesn't work after warm boot or disable/reenable

(please don't top post)

Wren Turkal <[email protected]> writes:

> Thanks for letting me know. The wifi is working great. Thank you for
> your work on that.
>
> I doubt you will have time, but if you do have a chance to test it,
> that would be amazing. I would love to make sure that I am not the
> only person having this issue, if possible.

I don't use bluetooth for anything but I'll try to test it at some
point, though too busy to do it now. IIRC I had initially bluetooth
enabled on the kernel but later disabled it due to problems. It's so
long that I can't recall the details anymore.

--
https://patchwork.kernel.org/project/linux-wireless/list/

https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches

2024-04-10 22:00:33

by Wren Turkal

[permalink] [raw]
Subject: Re: QCA6390 bluetooth doesn't work after warm boot or disable/reenable

+Johan since he's a former BT drivers maintainer.

On 4/9/24 1:11 PM, Wren Turkal wrote:
> On 4/9/24 1:03 PM, Luiz Augusto von Dentz wrote:
>> 5.19 seems a little too old, imo, or has it been broken for that long,
>> did you at least tried with bluetooth-next? Try contacting the people
>> who actually wrote the driver.
>
> Sorry, I didn't answer your question. Yes, I do think it's been broken
> for longer than that, but I wanted to confirm.

Okay, so I tried 6.9-rc3 and every main release 5.19-6.8.

I have found the following:

* older kernels (6.3 and before) seem to be far less likely to kill on a
cycling the bluetooth service.
* 6.8/6.9-rcs consistently destroy bluetooth when stopping and
restarting the service
* If I destroy the bluetooth service with a BT service restart in
6.9-rc3 and warm reboot into any release back to 5.19, bluetooth does
not work
* cold boot works in all cases assuming I give the laptop about 5s
between power off/on

So, I suspsect that the process of closing out the hardware may be
leaving it in a state that the reset cannot handle (and probably never
could handle).

I also found that qualcomm has docs here:
https://www.qualcomm.com/products/technology/wi-fi/fastconnect/fastconnect-6800#Documentation

However, I am not a member of a Qualcomm verified company (mentioned in
the doc links). Luiz, Marcel, or Johan, do you have any contacts that
might be able to help me in getting info about the technical docs for
this hardware? I would love to see if I can find any issues in how the
hardware is being reset.

As an independent dev, I don't even know what it takes to get that kind
of access. I would welcome any help here. Hey Qualcomm, are you hiring? :P

wt
--
You're more amazing than you think!

2024-04-10 22:40:44

by Wren Turkal

[permalink] [raw]
Subject: Re: QCA6390 bluetooth doesn't work after warm boot or disable/reenable

On 4/10/24 3:00 PM, Wren Turkal wrote:
> +Johan since he's a former BT drivers maintainer.
>
> On 4/9/24 1:11 PM, Wren Turkal wrote:
>> On 4/9/24 1:03 PM, Luiz Augusto von Dentz wrote:
>>> 5.19 seems a little too old, imo, or has it been broken for that long,
>>> did you at least tried with bluetooth-next? Try contacting the people
>>> who actually wrote the driver.
>>
>> Sorry, I didn't answer your question. Yes, I do think it's been broken
>> for longer than that, but I wanted to confirm.
>
> Okay, so I tried 6.9-rc3 and every main release 5.19-6.8.
>
> I have found the following:
>
> * older kernels (6.3 and before) seem to be far less likely to kill on a
> cycling the bluetooth service.
> * 6.8/6.9-rcs consistently destroy bluetooth when stopping and
> restarting the service
> * If I destroy the bluetooth service with a BT service restart in
> 6.9-rc3 and warm reboot into any release back to 5.19, bluetooth does
> not work
> * cold boot works in all cases assuming I give the laptop about 5s
> between power off/on

I just did another experiment on 6.9-rc3. I blacklisted relevant
bluetooth modules and then warm booted without the blacklist. I did this
for both the "bluetooth" and "btqca" modules. In both cases, I cold
booted with and appropriate "module_blacklist" kernel arg. After the
boot, I verified the module was not loaded. I then warm booted without
the blacklist, and the bluetooth works, so bluetooth only seems to fail
when the linux module code for closing the device is run before a warm boot.

> So, I suspsect that the process of closing out the hardware may be
> leaving it in a state that the reset cannot handle (and probably never
> could handle).
>
> I also found that qualcomm has docs here:
> https://www.qualcomm.com/products/technology/wi-fi/fastconnect/fastconnect-6800#Documentation
>
> However, I am not a member of a Qualcomm verified company (mentioned in
> the doc links). Luiz, Marcel, or Johan, do you have any contacts that
> might be able to help me in getting info about the technical docs for
> this hardware? I would love to see if I can find any issues in how the
> hardware is being reset.
>
> As an independent dev, I don't even know what it takes to get that kind
> of access. I would welcome any help here. Hey Qualcomm, are you hiring? :P
>
> wt

--
You're more amazing than you think!

2024-04-11 20:30:14

by Wren Turkal

[permalink] [raw]
Subject: Re: QCA6390 bluetooth doesn't work after warm boot or disable/reenable

On 4/10/24 3:40 PM, Wren Turkal wrote:
> On 4/10/24 3:00 PM, Wren Turkal wrote:
>> +Johan since he's a former BT drivers maintainer.
>>
>> On 4/9/24 1:11 PM, Wren Turkal wrote:
>>> On 4/9/24 1:03 PM, Luiz Augusto von Dentz wrote:
>>>> 5.19 seems a little too old, imo, or has it been broken for that long,
>>>> did you at least tried with bluetooth-next? Try contacting the people
>>>> who actually wrote the driver.
>>>
>>> Sorry, I didn't answer your question. Yes, I do think it's been
>>> broken for longer than that, but I wanted to confirm.
>>
>> Okay, so I tried 6.9-rc3 and every main release 5.19-6.8.
>>
>> I have found the following:
>>
>> * older kernels (6.3 and before) seem to be far less likely to kill on
>> a cycling the bluetooth service.
>> * 6.8/6.9-rcs consistently destroy bluetooth when stopping and
>> restarting the service
>> * If I destroy the bluetooth service with a BT service restart in
>> 6.9-rc3 and warm reboot into any release back to 5.19, bluetooth does
>> not work
>> * cold boot works in all cases assuming I give the laptop about 5s
>> between power off/on
>
> I just did another experiment on 6.9-rc3. I blacklisted relevant
> bluetooth modules and then warm booted without the blacklist. I did this
> for both the "bluetooth" and "btqca" modules. In both cases, I cold
> booted with and appropriate "module_blacklist" kernel arg. After the
> boot, I verified the module was not loaded. I then warm booted without
> the blacklist, and the bluetooth works, so bluetooth only seems to fail
> when the linux module code for closing the device is run before a warm
> boot.

And another experiment. I disabled the bluetooth.service and
bluetooth.target with systemctl. I then shutdown and cold booted. After
logging into GNOME, starting the service. Similar failures show up in
the kernel logs as after the failure during a warm boot:

Apr 11 13:17:54 braindead.localdomain bluetoothd[4408]: Bluetooth
management interface 1.22 initialized
Apr 11 13:17:54 braindead.localdomain bluetoothd[4408]:
src/adapter.c:reset_adv_monitors_complete() Failed to reset Adv
Monitors: Failed (0x03)
Apr 11 13:17:54 braindead.localdomain bluetoothd[4408]: Battery Provider
Manager created
Apr 11 13:17:54 braindead.localdomain kernel: Bluetooth: MGMT ver 1.22
Apr 11 13:17:54 braindead.localdomain bluetoothd[4408]:
src/device.c:device_set_wake_support() Unable to set wake_support
without RPA resolution
Apr 11 13:17:54 braindead.localdomain bluetoothd[4408]: Failed to clear
UUIDs: Failed (0x03)
Apr 11 13:17:54 braindead.localdomain bluetoothd[4408]: Failed to add
UUID: Failed (0x03)
Apr 11 13:17:54 braindead.localdomain bluetoothd[4408]: Failed to add
UUID: Failed (0x03)
Apr 11 13:17:54 braindead.localdomain bluetoothd[4408]: Failed to add
UUID: Failed (0x03)
Apr 11 13:17:54 braindead.localdomain wireplumber[2139]:
org.bluez.GattManager1.RegisterApplication() failed:
GDBus.Error:org.freedesktop.DBus.Error.UnknownMethod: Invalid method call
Apr 11 13:17:54 braindead.localdomain wireplumber[2139]:
org.bluez.GattManager1.RegisterApplication() failed:
GDBus.Error:org.freedesktop.DBus.Error.UnknownMethod: Invalid method call
Apr 11 13:17:54 braindead.localdomain kernel: Bluetooth: hci0: setting
up ROME/QCA6390
Apr 11 13:17:54 braindead.localdomain kernel: Bluetooth: RFCOMM TTY
layer initialized
Apr 11 13:17:54 braindead.localdomain kernel: Bluetooth: RFCOMM socket
layer initialized
Apr 11 13:17:54 braindead.localdomain kernel: Bluetooth: RFCOMM ver 1.11

... skip some logs about registering modules in the bluetoothd ...

Apr 11 13:17:54 braindead.localdomain kernel: Bluetooth: hci0: QCA
Product ID :0x00000010
Apr 11 13:17:54 braindead.localdomain kernel: Bluetooth: hci0: QCA SOC
Version :0x400a0200
Apr 11 13:17:54 braindead.localdomain kernel: Bluetooth: hci0: QCA ROM
Version :0x00000200
Apr 11 13:17:54 braindead.localdomain kernel: Bluetooth: hci0: QCA Patch
Version:0x00003ac0
Apr 11 13:17:54 braindead.localdomain kernel: Bluetooth: hci0: QCA
controller version 0x02000200
Apr 11 13:17:54 braindead.localdomain kernel: Bluetooth: hci0: QCA
Downloading qca/htbtfw20.tlv
Apr 11 13:17:54 braindead.localdomain kernel: Bluetooth: hci0: QCA
Failed to send TLV segment (-110)
Apr 11 13:17:54 braindead.localdomain kernel: Bluetooth: hci0: QCA
Failed to download patch (-110)
Apr 11 13:17:54 braindead.localdomain kernel: Bluetooth: hci0: Retry BT
power ON:0
Apr 11 13:17:57 braindead.localdomain kernel: Bluetooth: hci0: command
0xfc00 tx timeout
Apr 11 13:17:57 braindead.localdomain kernel: Bluetooth: hci0: Reading
QCA version information failed (-110)
Apr 11 13:17:57 braindead.localdomain kernel: Bluetooth: hci0: Retry BT
power ON:1
Apr 11 13:17:59 braindead.localdomain kernel: Bluetooth: hci0: command
0xfc00 tx timeout
Apr 11 13:17:59 braindead.localdomain kernel: Bluetooth: hci0: Reading
QCA version information failed (-110)
Apr 11 13:17:59 braindead.localdomain kernel: Bluetooth: hci0: Retry BT
power ON:2
Apr 11 13:18:01 braindead.localdomain bluetoothd[4408]: Failed to set
mode: Authentication Failed (0x05)
Apr 11 13:18:01 braindead.localdomain kernel: Bluetooth: hci0: command
0xfc00 tx timeout
Apr 11 13:18:01 braindead.localdomain kernel: Bluetooth: hci0: Reading
QCA version information failed (-110)
Apr 11 13:18:01 braindead.localdomain bluetoothd[4408]: Failed to add
UUID: Failed (0x03)
Apr 11 13:18:01 braindead.localdomain bluetoothd[4408]: Failed to add
UUID: Failed (0x03)
Apr 11 13:18:01 braindead.localdomain bluetoothd[4408]: Too small Add
Device complete event
Apr 11 13:18:01 braindead.localdomain bluetoothd[4408]: Failed to add
UUID: Failed (0x03)
Apr 11 13:18:01 braindead.localdomain bluetoothd[4408]: Failed to add
UUID: Failed (0x03)
Apr 11 13:18:01 braindead.localdomain bluetoothd[4408]: Failed to add
UUID: Failed (0x03)
Apr 11 13:18:01 braindead.localdomain bluetoothd[4408]: Failed to add
UUID: Failed (0x03)
Apr 11 13:18:01 braindead.localdomain bluetoothd[4408]: Failed to add
UUID: Failed (0x03)
Apr 11 13:18:01 braindead.localdomain bluetoothd[4408]: Failed to add
UUID: Failed (0x03)

It looks like the firmware is failing to load. Is there some kind of
time limit on loading the firmware after the module is loaded?

Why would this work if I allow the service to be started on boot, but
not if I wait until after logging into GNOME?

>> So, I suspsect that the process of closing out the hardware may be
>> leaving it in a state that the reset cannot handle (and probably never
>> could handle).
>>
>> I also found that qualcomm has docs here:
>> https://www.qualcomm.com/products/technology/wi-fi/fastconnect/fastconnect-6800#Documentation
>>
>> However, I am not a member of a Qualcomm verified company (mentioned
>> in the doc links). Luiz, Marcel, or Johan, do you have any contacts
>> that might be able to help me in getting info about the technical docs
>> for this hardware? I would love to see if I can find any issues in how
>> the hardware is being reset.
>>
>> As an independent dev, I don't even know what it takes to get that
>> kind of access. I would welcome any help here. Hey Qualcomm, are you
>> hiring? :P
>>
>> wt
>

--
You're more amazing than you think!

2024-04-12 19:56:37

by Wren Turkal

[permalink] [raw]
Subject: Re: QCA6390 bluetooth doesn't work after warm boot or disable/reenable

On 4/11/24 1:30 PM, Wren Turkal wrote:
> On 4/10/24 3:40 PM, Wren Turkal wrote:
>> On 4/10/24 3:00 PM, Wren Turkal wrote:
>>> +Johan since he's a former BT drivers maintainer.
>>>
>>> On 4/9/24 1:11 PM, Wren Turkal wrote:
>>>> On 4/9/24 1:03 PM, Luiz Augusto von Dentz wrote:
>>>>> 5.19 seems a little too old, imo, or has it been broken for that long,
>>>>> did you at least tried with bluetooth-next? Try contacting the people
>>>>> who actually wrote the driver.
>>>>
>>>> Sorry, I didn't answer your question. Yes, I do think it's been
>>>> broken for longer than that, but I wanted to confirm.
>>>
>>> Okay, so I tried 6.9-rc3 and every main release 5.19-6.8.
>>>
>>> I have found the following:
>>>
>>> * older kernels (6.3 and before) seem to be far less likely to kill
>>> on a cycling the bluetooth service.
>>> * 6.8/6.9-rcs consistently destroy bluetooth when stopping and
>>> restarting the service
>>> * If I destroy the bluetooth service with a BT service restart in
>>> 6.9-rc3 and warm reboot into any release back to 5.19, bluetooth does
>>> not work
>>> * cold boot works in all cases assuming I give the laptop about 5s
>>> between power off/on
>>
>> I just did another experiment on 6.9-rc3. I blacklisted relevant
>> bluetooth modules and then warm booted without the blacklist. I did
>> this for both the "bluetooth" and "btqca" modules. In both cases, I
>> cold booted with and appropriate "module_blacklist" kernel arg. After
>> the boot, I verified the module was not loaded. I then warm booted
>> without the blacklist, and the bluetooth works, so bluetooth only
>> seems to fail when the linux module code for closing the device is run
>> before a warm boot.
>
> And another experiment. I disabled the bluetooth.service and
> bluetooth.target with systemctl. I then shutdown and cold booted. After
> logging into GNOME, starting the service. Similar failures show up in
> the kernel logs as after the failure during a warm boot:
>
> Apr 11 13:17:54 braindead.localdomain bluetoothd[4408]: Bluetooth
> management interface 1.22 initialized
> Apr 11 13:17:54 braindead.localdomain bluetoothd[4408]:
> src/adapter.c:reset_adv_monitors_complete() Failed to reset Adv
> Monitors: Failed (0x03)
> Apr 11 13:17:54 braindead.localdomain bluetoothd[4408]: Battery Provider
> Manager created
> Apr 11 13:17:54 braindead.localdomain kernel: Bluetooth: MGMT ver 1.22
> Apr 11 13:17:54 braindead.localdomain bluetoothd[4408]:
> src/device.c:device_set_wake_support() Unable to set wake_support
> without RPA resolution
> Apr 11 13:17:54 braindead.localdomain bluetoothd[4408]: Failed to clear
> UUIDs: Failed (0x03)
> Apr 11 13:17:54 braindead.localdomain bluetoothd[4408]: Failed to add
> UUID: Failed (0x03)
> Apr 11 13:17:54 braindead.localdomain bluetoothd[4408]: Failed to add
> UUID: Failed (0x03)
> Apr 11 13:17:54 braindead.localdomain bluetoothd[4408]: Failed to add
> UUID: Failed (0x03)
> Apr 11 13:17:54 braindead.localdomain wireplumber[2139]:
> org.bluez.GattManager1.RegisterApplication() failed:
> GDBus.Error:org.freedesktop.DBus.Error.UnknownMethod: Invalid method call
> Apr 11 13:17:54 braindead.localdomain wireplumber[2139]:
> org.bluez.GattManager1.RegisterApplication() failed:
> GDBus.Error:org.freedesktop.DBus.Error.UnknownMethod: Invalid method call
> Apr 11 13:17:54 braindead.localdomain kernel: Bluetooth: hci0: setting
> up ROME/QCA6390
> Apr 11 13:17:54 braindead.localdomain kernel: Bluetooth: RFCOMM TTY
> layer initialized
> Apr 11 13:17:54 braindead.localdomain kernel: Bluetooth: RFCOMM socket
> layer initialized
> Apr 11 13:17:54 braindead.localdomain kernel: Bluetooth: RFCOMM ver 1.11
>
> ... skip some logs about registering modules in the bluetoothd ...
>
> Apr 11 13:17:54 braindead.localdomain kernel: Bluetooth: hci0: QCA
> Product ID   :0x00000010
> Apr 11 13:17:54 braindead.localdomain kernel: Bluetooth: hci0: QCA SOC
> Version  :0x400a0200
> Apr 11 13:17:54 braindead.localdomain kernel: Bluetooth: hci0: QCA ROM
> Version  :0x00000200
> Apr 11 13:17:54 braindead.localdomain kernel: Bluetooth: hci0: QCA Patch
> Version:0x00003ac0
> Apr 11 13:17:54 braindead.localdomain kernel: Bluetooth: hci0: QCA
> controller version 0x02000200
> Apr 11 13:17:54 braindead.localdomain kernel: Bluetooth: hci0: QCA
> Downloading qca/htbtfw20.tlv
> Apr 11 13:17:54 braindead.localdomain kernel: Bluetooth: hci0: QCA
> Failed to send TLV segment (-110)
> Apr 11 13:17:54 braindead.localdomain kernel: Bluetooth: hci0: QCA
> Failed to download patch (-110)
> Apr 11 13:17:54 braindead.localdomain kernel: Bluetooth: hci0: Retry BT
> power ON:0
> Apr 11 13:17:57 braindead.localdomain kernel: Bluetooth: hci0: command
> 0xfc00 tx timeout
> Apr 11 13:17:57 braindead.localdomain kernel: Bluetooth: hci0: Reading
> QCA version information failed (-110)
> Apr 11 13:17:57 braindead.localdomain kernel: Bluetooth: hci0: Retry BT
> power ON:1
> Apr 11 13:17:59 braindead.localdomain kernel: Bluetooth: hci0: command
> 0xfc00 tx timeout
> Apr 11 13:17:59 braindead.localdomain kernel: Bluetooth: hci0: Reading
> QCA version information failed (-110)
> Apr 11 13:17:59 braindead.localdomain kernel: Bluetooth: hci0: Retry BT
> power ON:2
> Apr 11 13:18:01 braindead.localdomain bluetoothd[4408]: Failed to set
> mode: Authentication Failed (0x05)
> Apr 11 13:18:01 braindead.localdomain kernel: Bluetooth: hci0: command
> 0xfc00 tx timeout
> Apr 11 13:18:01 braindead.localdomain kernel: Bluetooth: hci0: Reading
> QCA version information failed (-110)
> Apr 11 13:18:01 braindead.localdomain bluetoothd[4408]: Failed to add
> UUID: Failed (0x03)
> Apr 11 13:18:01 braindead.localdomain bluetoothd[4408]: Failed to add
> UUID: Failed (0x03)
> Apr 11 13:18:01 braindead.localdomain bluetoothd[4408]: Too small Add
> Device complete event
> Apr 11 13:18:01 braindead.localdomain bluetoothd[4408]: Failed to add
> UUID: Failed (0x03)
> Apr 11 13:18:01 braindead.localdomain bluetoothd[4408]: Failed to add
> UUID: Failed (0x03)
> Apr 11 13:18:01 braindead.localdomain bluetoothd[4408]: Failed to add
> UUID: Failed (0x03)
> Apr 11 13:18:01 braindead.localdomain bluetoothd[4408]: Failed to add
> UUID: Failed (0x03)
> Apr 11 13:18:01 braindead.localdomain bluetoothd[4408]: Failed to add
> UUID: Failed (0x03)
> Apr 11 13:18:01 braindead.localdomain bluetoothd[4408]: Failed to add
> UUID: Failed (0x03)

I have captured a full log of my system since boot including debug
messages for the hci_hca.c file. Should I attach that log to a message
here? In general, I am not totally certain of how I should track the
troubleshooting for this problem. Do y'all want it on the mailing list?

>
> It looks like the firmware is failing to load. Is there some kind of
> time limit on loading the firmware after the module is loaded?
>
> Why would this work if I allow the service to be started on boot, but
> not if I wait until after logging into GNOME?
>
>>> So, I suspsect that the process of closing out the hardware may be
>>> leaving it in a state that the reset cannot handle (and probably
>>> never could handle).
>>>
>>> I also found that qualcomm has docs here:
>>> https://www.qualcomm.com/products/technology/wi-fi/fastconnect/fastconnect-6800#Documentation
>>>
>>> However, I am not a member of a Qualcomm verified company (mentioned
>>> in the doc links). Luiz, Marcel, or Johan, do you have any contacts
>>> that might be able to help me in getting info about the technical
>>> docs for this hardware? I would love to see if I can find any issues
>>> in how the hardware is being reset.
>>>
>>> As an independent dev, I don't even know what it takes to get that
>>> kind of access. I would welcome any help here. Hey Qualcomm, are you
>>> hiring? :P
>>>
>>> wt
>>
>

--
You're more amazing than you think!

2024-04-14 12:05:17

by Zijun Hu

[permalink] [raw]
Subject: Re: QCA6390 bluetooth doesn't work after warm boot or disable/reenable

On 4/13/2024 3:46 AM, Wren Turkal wrote:
> On 4/11/24 1:30 PM, Wren Turkal wrote:
>> On 4/10/24 3:40 PM, Wren Turkal wrote:
>>> On 4/10/24 3:00 PM, Wren Turkal wrote:
>>>> +Johan since he's a former BT drivers maintainer.
>>>>
>>>> On 4/9/24 1:11 PM, Wren Turkal wrote:
>>>>> On 4/9/24 1:03 PM, Luiz Augusto von Dentz wrote:
>>>>>> 5.19 seems a little too old, imo, or has it been broken for that long,
>>>>>> did you at least tried with bluetooth-next? Try contacting the people
>>>>>> who actually wrote the driver.
>>>>>
>>>>> Sorry, I didn't answer your question. Yes, I do think it's been broken for longer than that, but I wanted to confirm.
>>>>
>>>> Okay, so I tried 6.9-rc3 and every main release 5.19-6.8.
>>>>
>>>> I have found the following:
>>>>
>>>> * older kernels (6.3 and before) seem to be far less likely to kill on a cycling the bluetooth service.
>>>> * 6.8/6.9-rcs consistently destroy bluetooth when stopping and restarting the service
>>>> * If I destroy the bluetooth service with a BT service restart in 6.9-rc3 and warm reboot into any release back to 5.19, bluetooth does not work
>>>> * cold boot works in all cases assuming I give the laptop about 5s between power off/on
>>>
>>> I just did another experiment on 6.9-rc3. I blacklisted relevant bluetooth modules and then warm booted without the blacklist. I did this for both the "bluetooth" and "btqca" modules. In both cases, I cold booted with and appropriate "module_blacklist" kernel arg. After the boot, I verified the module was not loaded. I then warm booted without the blacklist, and the bluetooth works, so bluetooth only seems to fail when the linux module code for closing the device is run before a warm boot.
>>
>> And another experiment. I disabled the bluetooth.service and bluetooth.target with systemctl. I then shutdown and cold booted. After logging into GNOME, starting the service. Similar failures show up in the kernel logs as after the failure during a warm boot:
>>
>> Apr 11 13:17:54 braindead.localdomain bluetoothd[4408]: Bluetooth management interface 1.22 initialized
>> Apr 11 13:17:54 braindead.localdomain bluetoothd[4408]: src/adapter.c:reset_adv_monitors_complete() Failed to reset Adv Monitors: Failed (0x03)
>> Apr 11 13:17:54 braindead.localdomain bluetoothd[4408]: Battery Provider Manager created
>> Apr 11 13:17:54 braindead.localdomain kernel: Bluetooth: MGMT ver 1.22
>> Apr 11 13:17:54 braindead.localdomain bluetoothd[4408]: src/device.c:device_set_wake_support() Unable to set wake_support without RPA resolution
>> Apr 11 13:17:54 braindead.localdomain bluetoothd[4408]: Failed to clear UUIDs: Failed (0x03)
>> Apr 11 13:17:54 braindead.localdomain bluetoothd[4408]: Failed to add UUID: Failed (0x03)
>> Apr 11 13:17:54 braindead.localdomain bluetoothd[4408]: Failed to add UUID: Failed (0x03)
>> Apr 11 13:17:54 braindead.localdomain bluetoothd[4408]: Failed to add UUID: Failed (0x03)
>> Apr 11 13:17:54 braindead.localdomain wireplumber[2139]: org.bluez.GattManager1.RegisterApplication() failed: GDBus.Error:org.freedesktop.DBus.Error.UnknownMethod: Invalid method call
>> Apr 11 13:17:54 braindead.localdomain wireplumber[2139]: org.bluez.GattManager1.RegisterApplication() failed: GDBus.Error:org.freedesktop.DBus.Error.UnknownMethod: Invalid method call
>> Apr 11 13:17:54 braindead.localdomain kernel: Bluetooth: hci0: setting up ROME/QCA6390
>> Apr 11 13:17:54 braindead.localdomain kernel: Bluetooth: RFCOMM TTY layer initialized
>> Apr 11 13:17:54 braindead.localdomain kernel: Bluetooth: RFCOMM socket layer initialized
>> Apr 11 13:17:54 braindead.localdomain kernel: Bluetooth: RFCOMM ver 1.11
>>
>> ... skip some logs about registering modules in the bluetoothd ...
>>
>> Apr 11 13:17:54 braindead.localdomain kernel: Bluetooth: hci0: QCA Product ID   :0x00000010
>> Apr 11 13:17:54 braindead.localdomain kernel: Bluetooth: hci0: QCA SOC Version  :0x400a0200
>> Apr 11 13:17:54 braindead.localdomain kernel: Bluetooth: hci0: QCA ROM Version  :0x00000200
>> Apr 11 13:17:54 braindead.localdomain kernel: Bluetooth: hci0: QCA Patch Version:0x00003ac0
>> Apr 11 13:17:54 braindead.localdomain kernel: Bluetooth: hci0: QCA controller version 0x02000200
>> Apr 11 13:17:54 braindead.localdomain kernel: Bluetooth: hci0: QCA Downloading qca/htbtfw20.tlv
>> Apr 11 13:17:54 braindead.localdomain kernel: Bluetooth: hci0: QCA Failed to send TLV segment (-110)
>> Apr 11 13:17:54 braindead.localdomain kernel: Bluetooth: hci0: QCA Failed to download patch (-110)
>> Apr 11 13:17:54 braindead.localdomain kernel: Bluetooth: hci0: Retry BT power ON:0
>> Apr 11 13:17:57 braindead.localdomain kernel: Bluetooth: hci0: command 0xfc00 tx timeout
>> Apr 11 13:17:57 braindead.localdomain kernel: Bluetooth: hci0: Reading QCA version information failed (-110)
>> Apr 11 13:17:57 braindead.localdomain kernel: Bluetooth: hci0: Retry BT power ON:1
>> Apr 11 13:17:59 braindead.localdomain kernel: Bluetooth: hci0: command 0xfc00 tx timeout
>> Apr 11 13:17:59 braindead.localdomain kernel: Bluetooth: hci0: Reading QCA version information failed (-110)
>> Apr 11 13:17:59 braindead.localdomain kernel: Bluetooth: hci0: Retry BT power ON:2
>> Apr 11 13:18:01 braindead.localdomain bluetoothd[4408]: Failed to set mode: Authentication Failed (0x05)
>> Apr 11 13:18:01 braindead.localdomain kernel: Bluetooth: hci0: command 0xfc00 tx timeout
>> Apr 11 13:18:01 braindead.localdomain kernel: Bluetooth: hci0: Reading QCA version information failed (-110)
>> Apr 11 13:18:01 braindead.localdomain bluetoothd[4408]: Failed to add UUID: Failed (0x03)
>> Apr 11 13:18:01 braindead.localdomain bluetoothd[4408]: Failed to add UUID: Failed (0x03)
>> Apr 11 13:18:01 braindead.localdomain bluetoothd[4408]: Too small Add Device complete event
>> Apr 11 13:18:01 braindead.localdomain bluetoothd[4408]: Failed to add UUID: Failed (0x03)
>> Apr 11 13:18:01 braindead.localdomain bluetoothd[4408]: Failed to add UUID: Failed (0x03)
>> Apr 11 13:18:01 braindead.localdomain bluetoothd[4408]: Failed to add UUID: Failed (0x03)
>> Apr 11 13:18:01 braindead.localdomain bluetoothd[4408]: Failed to add UUID: Failed (0x03)
>> Apr 11 13:18:01 braindead.localdomain bluetoothd[4408]: Failed to add UUID: Failed (0x03)
>> Apr 11 13:18:01 braindead.localdomain bluetoothd[4408]: Failed to add UUID: Failed (0x03)
>
> I have captured a full log of my system since boot including debug messages for the hci_hca.c file. Should I attach that log to a message here? In general, I am not totally certain of how I should track the troubleshooting for this problem. Do y'all want it on the mailing list?
>
>>
>> It looks like the firmware is failing to load. Is there some kind of time limit on loading the firmware after the module is loaded?
>>
>> Why would this work if I allow the service to be started on boot, but not if I wait until after logging into GNOME?
>>
>>>> So, I suspsect that the process of closing out the hardware may be leaving it in a state that the reset cannot handle (and probably never could handle).
>>>>
>>>> I also found that qualcomm has docs here: https://www.qualcomm.com/products/technology/wi-fi/fastconnect/fastconnect-6800#Documentation
>>>>
>>>> However, I am not a member of a Qualcomm verified company (mentioned in the doc links). Luiz, Marcel, or Johan, do you have any contacts that might be able to help me in getting info about the technical docs for this hardware? I would love to see if I can find any issues in how the hardware is being reset.
>>>>
>>>> As an independent dev, I don't even know what it takes to get that kind of access. I would welcome any help here. Hey Qualcomm, are you hiring? :P
>>>>
>>>> wt
>>>
>>
>
Hi Wren,

1) Apply below patch series
https://patchwork.kernel.org/project/bluetooth/list/?series=844357

2) Disable BT

3) Power off

4) Power on

5) enable more logs
echo "module hci_uart +pft" > /sys/kernel/debug/dynamic_debug/control
echo "module btqca +pft" > /sys/kernel/debug/dynamic_debug/control

6) enable BT

7) then check this issue again. several disable/enable or reboot cycles.

2024-04-15 07:52:15

by Wren Turkal

[permalink] [raw]
Subject: Re: QCA6390 bluetooth doesn't work after warm boot or disable/reenable

On 4/14/24 5:04 AM, quic_zijuhu wrote:
> On 4/13/2024 3:46 AM, Wren Turkal wrote:
>> On 4/11/24 1:30 PM, Wren Turkal wrote:
>>> On 4/10/24 3:40 PM, Wren Turkal wrote:
>>>> On 4/10/24 3:00 PM, Wren Turkal wrote:
>>>>> +Johan since he's a former BT drivers maintainer.
>>>>>
>>>>> On 4/9/24 1:11 PM, Wren Turkal wrote:
>>>>>> On 4/9/24 1:03 PM, Luiz Augusto von Dentz wrote:
>>>>>>> 5.19 seems a little too old, imo, or has it been broken for that long,
>>>>>>> did you at least tried with bluetooth-next? Try contacting the people
>>>>>>> who actually wrote the driver.
>>>>>>
>>>>>> Sorry, I didn't answer your question. Yes, I do think it's been broken for longer than that, but I wanted to confirm.
>>>>>
>>>>> Okay, so I tried 6.9-rc3 and every main release 5.19-6.8.
>>>>>
>>>>> I have found the following:
>>>>>
>>>>> * older kernels (6.3 and before) seem to be far less likely to kill on a cycling the bluetooth service.
>>>>> * 6.8/6.9-rcs consistently destroy bluetooth when stopping and restarting the service
>>>>> * If I destroy the bluetooth service with a BT service restart in 6.9-rc3 and warm reboot into any release back to 5.19, bluetooth does not work
>>>>> * cold boot works in all cases assuming I give the laptop about 5s between power off/on
>>>>
>>>> I just did another experiment on 6.9-rc3. I blacklisted relevant bluetooth modules and then warm booted without the blacklist. I did this for both the "bluetooth" and "btqca" modules. In both cases, I cold booted with and appropriate "module_blacklist" kernel arg. After the boot, I verified the module was not loaded. I then warm booted without the blacklist, and the bluetooth works, so bluetooth only seems to fail when the linux module code for closing the device is run before a warm boot.
>>>
>>> And another experiment. I disabled the bluetooth.service and bluetooth.target with systemctl. I then shutdown and cold booted. After logging into GNOME, starting the service. Similar failures show up in the kernel logs as after the failure during a warm boot:
>>>
>>> Apr 11 13:17:54 braindead.localdomain bluetoothd[4408]: Bluetooth management interface 1.22 initialized
>>> Apr 11 13:17:54 braindead.localdomain bluetoothd[4408]: src/adapter.c:reset_adv_monitors_complete() Failed to reset Adv Monitors: Failed (0x03)
>>> Apr 11 13:17:54 braindead.localdomain bluetoothd[4408]: Battery Provider Manager created
>>> Apr 11 13:17:54 braindead.localdomain kernel: Bluetooth: MGMT ver 1.22
>>> Apr 11 13:17:54 braindead.localdomain bluetoothd[4408]: src/device.c:device_set_wake_support() Unable to set wake_support without RPA resolution
>>> Apr 11 13:17:54 braindead.localdomain bluetoothd[4408]: Failed to clear UUIDs: Failed (0x03)
>>> Apr 11 13:17:54 braindead.localdomain bluetoothd[4408]: Failed to add UUID: Failed (0x03)
>>> Apr 11 13:17:54 braindead.localdomain bluetoothd[4408]: Failed to add UUID: Failed (0x03)
>>> Apr 11 13:17:54 braindead.localdomain bluetoothd[4408]: Failed to add UUID: Failed (0x03)
>>> Apr 11 13:17:54 braindead.localdomain wireplumber[2139]: org.bluez.GattManager1.RegisterApplication() failed: GDBus.Error:org.freedesktop.DBus.Error.UnknownMethod: Invalid method call
>>> Apr 11 13:17:54 braindead.localdomain wireplumber[2139]: org.bluez.GattManager1.RegisterApplication() failed: GDBus.Error:org.freedesktop.DBus.Error.UnknownMethod: Invalid method call
>>> Apr 11 13:17:54 braindead.localdomain kernel: Bluetooth: hci0: setting up ROME/QCA6390
>>> Apr 11 13:17:54 braindead.localdomain kernel: Bluetooth: RFCOMM TTY layer initialized
>>> Apr 11 13:17:54 braindead.localdomain kernel: Bluetooth: RFCOMM socket layer initialized
>>> Apr 11 13:17:54 braindead.localdomain kernel: Bluetooth: RFCOMM ver 1.11
>>>
>>> ... skip some logs about registering modules in the bluetoothd ...
>>>
>>> Apr 11 13:17:54 braindead.localdomain kernel: Bluetooth: hci0: QCA Product ID   :0x00000010
>>> Apr 11 13:17:54 braindead.localdomain kernel: Bluetooth: hci0: QCA SOC Version  :0x400a0200
>>> Apr 11 13:17:54 braindead.localdomain kernel: Bluetooth: hci0: QCA ROM Version  :0x00000200
>>> Apr 11 13:17:54 braindead.localdomain kernel: Bluetooth: hci0: QCA Patch Version:0x00003ac0
>>> Apr 11 13:17:54 braindead.localdomain kernel: Bluetooth: hci0: QCA controller version 0x02000200
>>> Apr 11 13:17:54 braindead.localdomain kernel: Bluetooth: hci0: QCA Downloading qca/htbtfw20.tlv
>>> Apr 11 13:17:54 braindead.localdomain kernel: Bluetooth: hci0: QCA Failed to send TLV segment (-110)
>>> Apr 11 13:17:54 braindead.localdomain kernel: Bluetooth: hci0: QCA Failed to download patch (-110)
>>> Apr 11 13:17:54 braindead.localdomain kernel: Bluetooth: hci0: Retry BT power ON:0
>>> Apr 11 13:17:57 braindead.localdomain kernel: Bluetooth: hci0: command 0xfc00 tx timeout
>>> Apr 11 13:17:57 braindead.localdomain kernel: Bluetooth: hci0: Reading QCA version information failed (-110)
>>> Apr 11 13:17:57 braindead.localdomain kernel: Bluetooth: hci0: Retry BT power ON:1
>>> Apr 11 13:17:59 braindead.localdomain kernel: Bluetooth: hci0: command 0xfc00 tx timeout
>>> Apr 11 13:17:59 braindead.localdomain kernel: Bluetooth: hci0: Reading QCA version information failed (-110)
>>> Apr 11 13:17:59 braindead.localdomain kernel: Bluetooth: hci0: Retry BT power ON:2
>>> Apr 11 13:18:01 braindead.localdomain bluetoothd[4408]: Failed to set mode: Authentication Failed (0x05)
>>> Apr 11 13:18:01 braindead.localdomain kernel: Bluetooth: hci0: command 0xfc00 tx timeout
>>> Apr 11 13:18:01 braindead.localdomain kernel: Bluetooth: hci0: Reading QCA version information failed (-110)
>>> Apr 11 13:18:01 braindead.localdomain bluetoothd[4408]: Failed to add UUID: Failed (0x03)
>>> Apr 11 13:18:01 braindead.localdomain bluetoothd[4408]: Failed to add UUID: Failed (0x03)
>>> Apr 11 13:18:01 braindead.localdomain bluetoothd[4408]: Too small Add Device complete event
>>> Apr 11 13:18:01 braindead.localdomain bluetoothd[4408]: Failed to add UUID: Failed (0x03)
>>> Apr 11 13:18:01 braindead.localdomain bluetoothd[4408]: Failed to add UUID: Failed (0x03)
>>> Apr 11 13:18:01 braindead.localdomain bluetoothd[4408]: Failed to add UUID: Failed (0x03)
>>> Apr 11 13:18:01 braindead.localdomain bluetoothd[4408]: Failed to add UUID: Failed (0x03)
>>> Apr 11 13:18:01 braindead.localdomain bluetoothd[4408]: Failed to add UUID: Failed (0x03)
>>> Apr 11 13:18:01 braindead.localdomain bluetoothd[4408]: Failed to add UUID: Failed (0x03)
>>
>> I have captured a full log of my system since boot including debug messages for the hci_hca.c file. Should I attach that log to a message here? In general, I am not totally certain of how I should track the troubleshooting for this problem. Do y'all want it on the mailing list?
>>
>>>
>>> It looks like the firmware is failing to load. Is there some kind of time limit on loading the firmware after the module is loaded?
>>>
>>> Why would this work if I allow the service to be started on boot, but not if I wait until after logging into GNOME?
>>>
>>>>> So, I suspsect that the process of closing out the hardware may be leaving it in a state that the reset cannot handle (and probably never could handle).
>>>>>
>>>>> I also found that qualcomm has docs here: https://www.qualcomm.com/products/technology/wi-fi/fastconnect/fastconnect-6800#Documentation
>>>>>
>>>>> However, I am not a member of a Qualcomm verified company (mentioned in the doc links). Luiz, Marcel, or Johan, do you have any contacts that might be able to help me in getting info about the technical docs for this hardware? I would love to see if I can find any issues in how the hardware is being reset.
>>>>>
>>>>> As an independent dev, I don't even know what it takes to get that kind of access. I would welcome any help here. Hey Qualcomm, are you hiring? :P
>>>>>
>>>>> wt
>>>>
>>>
>>
> Hi Wren,
>
> 1) Apply below patch series
> https://patchwork.kernel.org/project/bluetooth/list/?series=844357
>
> 2) Disable BT
>
> 3) Power off
>
> 4) Power on
>
> 5) enable more logs
> echo "module hci_uart +pft" > /sys/kernel/debug/dynamic_debug/control
> echo "module btqca +pft" > /sys/kernel/debug/dynamic_debug/control
>
> 6) enable BT
>
> 7) then check this issue again. several disable/enable or reboot cycles.

Working on it.

What would you like me to capture from the logs, only kernel log or
kernel+bluetooth service or something else?

Also, how would you like me to share the logs? Do you want me to attach
them to a reply mail or paste them into the body of a reply email or
something else?

--
You're more amazing than you think!

2024-04-15 08:07:50

by Zijun Hu

[permalink] [raw]
Subject: Re: QCA6390 bluetooth doesn't work after warm boot or disable/reenable

On 4/15/2024 3:52 PM, Wren Turkal wrote:
> On 4/14/24 5:04 AM, quic_zijuhu wrote:
>> On 4/13/2024 3:46 AM, Wren Turkal wrote:
>>> On 4/11/24 1:30 PM, Wren Turkal wrote:
>>>> On 4/10/24 3:40 PM, Wren Turkal wrote:
>>>>> On 4/10/24 3:00 PM, Wren Turkal wrote:
>>>>>> +Johan since he's a former BT drivers maintainer.
>>>>>>
>>>>>> On 4/9/24 1:11 PM, Wren Turkal wrote:
>>>>>>> On 4/9/24 1:03 PM, Luiz Augusto von Dentz wrote:
>>>>>>>> 5.19 seems a little too old, imo, or has it been broken for that long,
>>>>>>>> did you at least tried with bluetooth-next? Try contacting the people
>>>>>>>> who actually wrote the driver.
>>>>>>>
>>>>>>> Sorry, I didn't answer your question. Yes, I do think it's been broken for longer than that, but I wanted to confirm.
>>>>>>
>>>>>> Okay, so I tried 6.9-rc3 and every main release 5.19-6.8.
>>>>>>
>>>>>> I have found the following:
>>>>>>
>>>>>> * older kernels (6.3 and before) seem to be far less likely to kill on a cycling the bluetooth service.
>>>>>> * 6.8/6.9-rcs consistently destroy bluetooth when stopping and restarting the service
>>>>>> * If I destroy the bluetooth service with a BT service restart in 6.9-rc3 and warm reboot into any release back to 5.19, bluetooth does not work
>>>>>> * cold boot works in all cases assuming I give the laptop about 5s between power off/on
>>>>>
>>>>> I just did another experiment on 6.9-rc3. I blacklisted relevant bluetooth modules and then warm booted without the blacklist. I did this for both the "bluetooth" and "btqca" modules. In both cases, I cold booted with and appropriate "module_blacklist" kernel arg. After the boot, I verified the module was not loaded. I then warm booted without the blacklist, and the bluetooth works, so bluetooth only seems to fail when the linux module code for closing the device is run before a warm boot.
>>>>
>>>> And another experiment. I disabled the bluetooth.service and bluetooth.target with systemctl. I then shutdown and cold booted. After logging into GNOME, starting the service. Similar failures show up in the kernel logs as after the failure during a warm boot:
>>>>
>>>> Apr 11 13:17:54 braindead.localdomain bluetoothd[4408]: Bluetooth management interface 1.22 initialized
>>>> Apr 11 13:17:54 braindead.localdomain bluetoothd[4408]: src/adapter.c:reset_adv_monitors_complete() Failed to reset Adv Monitors: Failed (0x03)
>>>> Apr 11 13:17:54 braindead.localdomain bluetoothd[4408]: Battery Provider Manager created
>>>> Apr 11 13:17:54 braindead.localdomain kernel: Bluetooth: MGMT ver 1.22
>>>> Apr 11 13:17:54 braindead.localdomain bluetoothd[4408]: src/device.c:device_set_wake_support() Unable to set wake_support without RPA resolution
>>>> Apr 11 13:17:54 braindead.localdomain bluetoothd[4408]: Failed to clear UUIDs: Failed (0x03)
>>>> Apr 11 13:17:54 braindead.localdomain bluetoothd[4408]: Failed to add UUID: Failed (0x03)
>>>> Apr 11 13:17:54 braindead.localdomain bluetoothd[4408]: Failed to add UUID: Failed (0x03)
>>>> Apr 11 13:17:54 braindead.localdomain bluetoothd[4408]: Failed to add UUID: Failed (0x03)
>>>> Apr 11 13:17:54 braindead.localdomain wireplumber[2139]: org.bluez.GattManager1.RegisterApplication() failed: GDBus.Error:org.freedesktop.DBus.Error.UnknownMethod: Invalid method call
>>>> Apr 11 13:17:54 braindead.localdomain wireplumber[2139]: org.bluez.GattManager1.RegisterApplication() failed: GDBus.Error:org.freedesktop.DBus.Error.UnknownMethod: Invalid method call
>>>> Apr 11 13:17:54 braindead.localdomain kernel: Bluetooth: hci0: setting up ROME/QCA6390
>>>> Apr 11 13:17:54 braindead.localdomain kernel: Bluetooth: RFCOMM TTY layer initialized
>>>> Apr 11 13:17:54 braindead.localdomain kernel: Bluetooth: RFCOMM socket layer initialized
>>>> Apr 11 13:17:54 braindead.localdomain kernel: Bluetooth: RFCOMM ver 1.11
>>>>
>>>> ... skip some logs about registering modules in the bluetoothd ...
>>>>
>>>> Apr 11 13:17:54 braindead.localdomain kernel: Bluetooth: hci0: QCA Product ID   :0x00000010
>>>> Apr 11 13:17:54 braindead.localdomain kernel: Bluetooth: hci0: QCA SOC Version  :0x400a0200
>>>> Apr 11 13:17:54 braindead.localdomain kernel: Bluetooth: hci0: QCA ROM Version  :0x00000200
>>>> Apr 11 13:17:54 braindead.localdomain kernel: Bluetooth: hci0: QCA Patch Version:0x00003ac0
>>>> Apr 11 13:17:54 braindead.localdomain kernel: Bluetooth: hci0: QCA controller version 0x02000200
>>>> Apr 11 13:17:54 braindead.localdomain kernel: Bluetooth: hci0: QCA Downloading qca/htbtfw20.tlv
>>>> Apr 11 13:17:54 braindead.localdomain kernel: Bluetooth: hci0: QCA Failed to send TLV segment (-110)
>>>> Apr 11 13:17:54 braindead.localdomain kernel: Bluetooth: hci0: QCA Failed to download patch (-110)
>>>> Apr 11 13:17:54 braindead.localdomain kernel: Bluetooth: hci0: Retry BT power ON:0
>>>> Apr 11 13:17:57 braindead.localdomain kernel: Bluetooth: hci0: command 0xfc00 tx timeout
>>>> Apr 11 13:17:57 braindead.localdomain kernel: Bluetooth: hci0: Reading QCA version information failed (-110)
>>>> Apr 11 13:17:57 braindead.localdomain kernel: Bluetooth: hci0: Retry BT power ON:1
>>>> Apr 11 13:17:59 braindead.localdomain kernel: Bluetooth: hci0: command 0xfc00 tx timeout
>>>> Apr 11 13:17:59 braindead.localdomain kernel: Bluetooth: hci0: Reading QCA version information failed (-110)
>>>> Apr 11 13:17:59 braindead.localdomain kernel: Bluetooth: hci0: Retry BT power ON:2
>>>> Apr 11 13:18:01 braindead.localdomain bluetoothd[4408]: Failed to set mode: Authentication Failed (0x05)
>>>> Apr 11 13:18:01 braindead.localdomain kernel: Bluetooth: hci0: command 0xfc00 tx timeout
>>>> Apr 11 13:18:01 braindead.localdomain kernel: Bluetooth: hci0: Reading QCA version information failed (-110)
>>>> Apr 11 13:18:01 braindead.localdomain bluetoothd[4408]: Failed to add UUID: Failed (0x03)
>>>> Apr 11 13:18:01 braindead.localdomain bluetoothd[4408]: Failed to add UUID: Failed (0x03)
>>>> Apr 11 13:18:01 braindead.localdomain bluetoothd[4408]: Too small Add Device complete event
>>>> Apr 11 13:18:01 braindead.localdomain bluetoothd[4408]: Failed to add UUID: Failed (0x03)
>>>> Apr 11 13:18:01 braindead.localdomain bluetoothd[4408]: Failed to add UUID: Failed (0x03)
>>>> Apr 11 13:18:01 braindead.localdomain bluetoothd[4408]: Failed to add UUID: Failed (0x03)
>>>> Apr 11 13:18:01 braindead.localdomain bluetoothd[4408]: Failed to add UUID: Failed (0x03)
>>>> Apr 11 13:18:01 braindead.localdomain bluetoothd[4408]: Failed to add UUID: Failed (0x03)
>>>> Apr 11 13:18:01 braindead.localdomain bluetoothd[4408]: Failed to add UUID: Failed (0x03)
>>>
>>> I have captured a full log of my system since boot including debug messages for the hci_hca.c file. Should I attach that log to a message here? In general, I am not totally certain of how I should track the troubleshooting for this problem. Do y'all want it on the mailing list?
>>>
>>>>
>>>> It looks like the firmware is failing to load. Is there some kind of time limit on loading the firmware after the module is loaded?
>>>>
>>>> Why would this work if I allow the service to be started on boot, but not if I wait until after logging into GNOME?
>>>>
>>>>>> So, I suspsect that the process of closing out the hardware may be leaving it in a state that the reset cannot handle (and probably never could handle).
>>>>>>
>>>>>> I also found that qualcomm has docs here: https://www.qualcomm.com/products/technology/wi-fi/fastconnect/fastconnect-6800#Documentation
>>>>>>
>>>>>> However, I am not a member of a Qualcomm verified company (mentioned in the doc links). Luiz, Marcel, or Johan, do you have any contacts that might be able to help me in getting info about the technical docs for this hardware? I would love to see if I can find any issues in how the hardware is being reset.
>>>>>>
>>>>>> As an independent dev, I don't even know what it takes to get that kind of access. I would welcome any help here. Hey Qualcomm, are you hiring? :P
>>>>>>
>>>>>> wt
>>>>>
>>>>
>>>
>> Hi Wren,
>>
>> 1) Apply below patch series
>> https://patchwork.kernel.org/project/bluetooth/list/?series=844357
>>
>> 2) Disable BT
>>
>> 3) Power off
>>
>> 4) Power on
>>
>> 5) enable more logs
>> echo "module hci_uart  +pft" > /sys/kernel/debug/dynamic_debug/control
>> echo "module btqca  +pft" > /sys/kernel/debug/dynamic_debug/control
>>
>> 6) enable BT
>>
>> 7) then check this issue again. several disable/enable or reboot cycles.
>
> Working on it.
>
> What would you like me to capture from the logs, only kernel log or kernel+bluetooth service or something else?
>
only kernel log.
> Also, how would you like me to share the logs? Do you want me to attach them to a reply mail or paste them into the body of a reply email or something else?
>
you maybe report this issue to bugzilla and track with bugzilla if you is easy for you. otherwise, paste them into the body of a reply email.

2024-04-15 08:52:06

by Wren Turkal

[permalink] [raw]
Subject: Re: QCA6390 bluetooth doesn't work after warm boot or disable/reenable

On 4/15/24 1:07 AM, quic_zijuhu wrote:
> On 4/15/2024 3:52 PM, Wren Turkal wrote:
>> On 4/14/24 5:04 AM, quic_zijuhu wrote:
>>> On 4/13/2024 3:46 AM, Wren Turkal wrote:
>>>> On 4/11/24 1:30 PM, Wren Turkal wrote:
>>>>> On 4/10/24 3:40 PM, Wren Turkal wrote:
>>>>>> On 4/10/24 3:00 PM, Wren Turkal wrote:
>>>>>>> +Johan since he's a former BT drivers maintainer.
>>>>>>>
>>>>>>> On 4/9/24 1:11 PM, Wren Turkal wrote:
>>>>>>>> On 4/9/24 1:03 PM, Luiz Augusto von Dentz wrote:
>>>>>>>>> 5.19 seems a little too old, imo, or has it been broken for that long,
>>>>>>>>> did you at least tried with bluetooth-next? Try contacting the people
>>>>>>>>> who actually wrote the driver.
>>>>>>>>
>>>>>>>> Sorry, I didn't answer your question. Yes, I do think it's been broken for longer than that, but I wanted to confirm.
>>>>>>>
>>>>>>> Okay, so I tried 6.9-rc3 and every main release 5.19-6.8.
>>>>>>>
>>>>>>> I have found the following:
>>>>>>>
>>>>>>> * older kernels (6.3 and before) seem to be far less likely to kill on a cycling the bluetooth service.
>>>>>>> * 6.8/6.9-rcs consistently destroy bluetooth when stopping and restarting the service
>>>>>>> * If I destroy the bluetooth service with a BT service restart in 6.9-rc3 and warm reboot into any release back to 5.19, bluetooth does not work
>>>>>>> * cold boot works in all cases assuming I give the laptop about 5s between power off/on
>>>>>>
>>>>>> I just did another experiment on 6.9-rc3. I blacklisted relevant bluetooth modules and then warm booted without the blacklist. I did this for both the "bluetooth" and "btqca" modules. In both cases, I cold booted with and appropriate "module_blacklist" kernel arg. After the boot, I verified the module was not loaded. I then warm booted without the blacklist, and the bluetooth works, so bluetooth only seems to fail when the linux module code for closing the device is run before a warm boot.
>>>>>
>>>>> And another experiment. I disabled the bluetooth.service and bluetooth.target with systemctl. I then shutdown and cold booted. After logging into GNOME, starting the service. Similar failures show up in the kernel logs as after the failure during a warm boot:
>>>>>
>>>>> Apr 11 13:17:54 braindead.localdomain bluetoothd[4408]: Bluetooth management interface 1.22 initialized
>>>>> Apr 11 13:17:54 braindead.localdomain bluetoothd[4408]: src/adapter.c:reset_adv_monitors_complete() Failed to reset Adv Monitors: Failed (0x03)
>>>>> Apr 11 13:17:54 braindead.localdomain bluetoothd[4408]: Battery Provider Manager created
>>>>> Apr 11 13:17:54 braindead.localdomain kernel: Bluetooth: MGMT ver 1.22
>>>>> Apr 11 13:17:54 braindead.localdomain bluetoothd[4408]: src/device.c:device_set_wake_support() Unable to set wake_support without RPA resolution
>>>>> Apr 11 13:17:54 braindead.localdomain bluetoothd[4408]: Failed to clear UUIDs: Failed (0x03)
>>>>> Apr 11 13:17:54 braindead.localdomain bluetoothd[4408]: Failed to add UUID: Failed (0x03)
>>>>> Apr 11 13:17:54 braindead.localdomain bluetoothd[4408]: Failed to add UUID: Failed (0x03)
>>>>> Apr 11 13:17:54 braindead.localdomain bluetoothd[4408]: Failed to add UUID: Failed (0x03)
>>>>> Apr 11 13:17:54 braindead.localdomain wireplumber[2139]: org.bluez.GattManager1.RegisterApplication() failed: GDBus.Error:org.freedesktop.DBus.Error.UnknownMethod: Invalid method call
>>>>> Apr 11 13:17:54 braindead.localdomain wireplumber[2139]: org.bluez.GattManager1.RegisterApplication() failed: GDBus.Error:org.freedesktop.DBus.Error.UnknownMethod: Invalid method call
>>>>> Apr 11 13:17:54 braindead.localdomain kernel: Bluetooth: hci0: setting up ROME/QCA6390
>>>>> Apr 11 13:17:54 braindead.localdomain kernel: Bluetooth: RFCOMM TTY layer initialized
>>>>> Apr 11 13:17:54 braindead.localdomain kernel: Bluetooth: RFCOMM socket layer initialized
>>>>> Apr 11 13:17:54 braindead.localdomain kernel: Bluetooth: RFCOMM ver 1.11
>>>>>
>>>>> ... skip some logs about registering modules in the bluetoothd ...
>>>>>
>>>>> Apr 11 13:17:54 braindead.localdomain kernel: Bluetooth: hci0: QCA Product ID   :0x00000010
>>>>> Apr 11 13:17:54 braindead.localdomain kernel: Bluetooth: hci0: QCA SOC Version  :0x400a0200
>>>>> Apr 11 13:17:54 braindead.localdomain kernel: Bluetooth: hci0: QCA ROM Version  :0x00000200
>>>>> Apr 11 13:17:54 braindead.localdomain kernel: Bluetooth: hci0: QCA Patch Version:0x00003ac0
>>>>> Apr 11 13:17:54 braindead.localdomain kernel: Bluetooth: hci0: QCA controller version 0x02000200
>>>>> Apr 11 13:17:54 braindead.localdomain kernel: Bluetooth: hci0: QCA Downloading qca/htbtfw20.tlv
>>>>> Apr 11 13:17:54 braindead.localdomain kernel: Bluetooth: hci0: QCA Failed to send TLV segment (-110)
>>>>> Apr 11 13:17:54 braindead.localdomain kernel: Bluetooth: hci0: QCA Failed to download patch (-110)
>>>>> Apr 11 13:17:54 braindead.localdomain kernel: Bluetooth: hci0: Retry BT power ON:0
>>>>> Apr 11 13:17:57 braindead.localdomain kernel: Bluetooth: hci0: command 0xfc00 tx timeout
>>>>> Apr 11 13:17:57 braindead.localdomain kernel: Bluetooth: hci0: Reading QCA version information failed (-110)
>>>>> Apr 11 13:17:57 braindead.localdomain kernel: Bluetooth: hci0: Retry BT power ON:1
>>>>> Apr 11 13:17:59 braindead.localdomain kernel: Bluetooth: hci0: command 0xfc00 tx timeout
>>>>> Apr 11 13:17:59 braindead.localdomain kernel: Bluetooth: hci0: Reading QCA version information failed (-110)
>>>>> Apr 11 13:17:59 braindead.localdomain kernel: Bluetooth: hci0: Retry BT power ON:2
>>>>> Apr 11 13:18:01 braindead.localdomain bluetoothd[4408]: Failed to set mode: Authentication Failed (0x05)
>>>>> Apr 11 13:18:01 braindead.localdomain kernel: Bluetooth: hci0: command 0xfc00 tx timeout
>>>>> Apr 11 13:18:01 braindead.localdomain kernel: Bluetooth: hci0: Reading QCA version information failed (-110)
>>>>> Apr 11 13:18:01 braindead.localdomain bluetoothd[4408]: Failed to add UUID: Failed (0x03)
>>>>> Apr 11 13:18:01 braindead.localdomain bluetoothd[4408]: Failed to add UUID: Failed (0x03)
>>>>> Apr 11 13:18:01 braindead.localdomain bluetoothd[4408]: Too small Add Device complete event
>>>>> Apr 11 13:18:01 braindead.localdomain bluetoothd[4408]: Failed to add UUID: Failed (0x03)
>>>>> Apr 11 13:18:01 braindead.localdomain bluetoothd[4408]: Failed to add UUID: Failed (0x03)
>>>>> Apr 11 13:18:01 braindead.localdomain bluetoothd[4408]: Failed to add UUID: Failed (0x03)
>>>>> Apr 11 13:18:01 braindead.localdomain bluetoothd[4408]: Failed to add UUID: Failed (0x03)
>>>>> Apr 11 13:18:01 braindead.localdomain bluetoothd[4408]: Failed to add UUID: Failed (0x03)
>>>>> Apr 11 13:18:01 braindead.localdomain bluetoothd[4408]: Failed to add UUID: Failed (0x03)
>>>>
>>>> I have captured a full log of my system since boot including debug messages for the hci_hca.c file. Should I attach that log to a message here? In general, I am not totally certain of how I should track the troubleshooting for this problem. Do y'all want it on the mailing list?
>>>>
>>>>>
>>>>> It looks like the firmware is failing to load. Is there some kind of time limit on loading the firmware after the module is loaded?
>>>>>
>>>>> Why would this work if I allow the service to be started on boot, but not if I wait until after logging into GNOME?
>>>>>
>>>>>>> So, I suspsect that the process of closing out the hardware may be leaving it in a state that the reset cannot handle (and probably never could handle).
>>>>>>>
>>>>>>> I also found that qualcomm has docs here: https://www.qualcomm.com/products/technology/wi-fi/fastconnect/fastconnect-6800#Documentation
>>>>>>>
>>>>>>> However, I am not a member of a Qualcomm verified company (mentioned in the doc links). Luiz, Marcel, or Johan, do you have any contacts that might be able to help me in getting info about the technical docs for this hardware? I would love to see if I can find any issues in how the hardware is being reset.
>>>>>>>
>>>>>>> As an independent dev, I don't even know what it takes to get that kind of access. I would welcome any help here. Hey Qualcomm, are you hiring? :P
>>>>>>>
>>>>>>> wt
>>>>>>
>>>>>
>>>>
>>> Hi Wren,
>>>
>>> 1) Apply below patch series
>>> https://patchwork.kernel.org/project/bluetooth/list/?series=844357
>>>
>>> 2) Disable BT
>>>
>>> 3) Power off
>>>
>>> 4) Power on
>>>
>>> 5) enable more logs
>>> echo "module hci_uart  +pft" > /sys/kernel/debug/dynamic_debug/control
>>> echo "module btqca  +pft" > /sys/kernel/debug/dynamic_debug/control
>>>
>>> 6) enable BT
>>>
>>> 7) then check this issue again. several disable/enable or reboot cycles.
>>
>> Working on it.
>>
>> What would you like me to capture from the logs, only kernel log or kernel+bluetooth service or something else?
>>
> only kernel log.
>> Also, how would you like me to share the logs? Do you want me to attach them to a reply mail or paste them into the body of a reply email or something else?
>>
> you maybe report this issue to bugzilla and track with bugzilla if you is easy for you. otherwise, paste them into the body of a reply email.

Done...https://bugzilla.kernel.org/show_bug.cgi?id=218726. See you in
bugzilla.

--
You're more amazing than you think!

2024-04-15 09:29:34

by Zijun Hu

[permalink] [raw]
Subject: Re: QCA6390 bluetooth doesn't work after warm boot or disable/reenable

On 4/15/2024 4:51 PM, Wren Turkal wrote:
> On 4/15/24 1:07 AM, quic_zijuhu wrote:
>> On 4/15/2024 3:52 PM, Wren Turkal wrote:
>>> On 4/14/24 5:04 AM, quic_zijuhu wrote:
>>>> On 4/13/2024 3:46 AM, Wren Turkal wrote:
>>>>> On 4/11/24 1:30 PM, Wren Turkal wrote:
>>>>>> On 4/10/24 3:40 PM, Wren Turkal wrote:
>>>>>>> On 4/10/24 3:00 PM, Wren Turkal wrote:
>>>>>>>> +Johan since he's a former BT drivers maintainer.
>>>>>>>>
>>>>>>>> On 4/9/24 1:11 PM, Wren Turkal wrote:
>>>>>>>>> On 4/9/24 1:03 PM, Luiz Augusto von Dentz wrote:
>>>>>>>>>> 5.19 seems a little too old, imo, or has it been broken for that long,
>>>>>>>>>> did you at least tried with bluetooth-next? Try contacting the people
>>>>>>>>>> who actually wrote the driver.
>>>>>>>>>
>>>>>>>>> Sorry, I didn't answer your question. Yes, I do think it's been broken for longer than that, but I wanted to confirm.
>>>>>>>>
>>>>>>>> Okay, so I tried 6.9-rc3 and every main release 5.19-6.8.
>>>>>>>>
>>>>>>>> I have found the following:
>>>>>>>>
>>>>>>>> * older kernels (6.3 and before) seem to be far less likely to kill on a cycling the bluetooth service.
>>>>>>>> * 6.8/6.9-rcs consistently destroy bluetooth when stopping and restarting the service
>>>>>>>> * If I destroy the bluetooth service with a BT service restart in 6.9-rc3 and warm reboot into any release back to 5.19, bluetooth does not work
>>>>>>>> * cold boot works in all cases assuming I give the laptop about 5s between power off/on
>>>>>>>
>>>>>>> I just did another experiment on 6.9-rc3. I blacklisted relevant bluetooth modules and then warm booted without the blacklist. I did this for both the "bluetooth" and "btqca" modules. In both cases, I cold booted with and appropriate "module_blacklist" kernel arg. After the boot, I verified the module was not loaded. I then warm booted without the blacklist, and the bluetooth works, so bluetooth only seems to fail when the linux module code for closing the device is run before a warm boot.
>>>>>>
>>>>>> And another experiment. I disabled the bluetooth.service and bluetooth.target with systemctl. I then shutdown and cold booted. After logging into GNOME, starting the service. Similar failures show up in the kernel logs as after the failure during a warm boot:
>>>>>>
>>>>>> Apr 11 13:17:54 braindead.localdomain bluetoothd[4408]: Bluetooth management interface 1.22 initialized
>>>>>> Apr 11 13:17:54 braindead.localdomain bluetoothd[4408]: src/adapter.c:reset_adv_monitors_complete() Failed to reset Adv Monitors: Failed (0x03)
>>>>>> Apr 11 13:17:54 braindead.localdomain bluetoothd[4408]: Battery Provider Manager created
>>>>>> Apr 11 13:17:54 braindead.localdomain kernel: Bluetooth: MGMT ver 1.22
>>>>>> Apr 11 13:17:54 braindead.localdomain bluetoothd[4408]: src/device.c:device_set_wake_support() Unable to set wake_support without RPA resolution
>>>>>> Apr 11 13:17:54 braindead.localdomain bluetoothd[4408]: Failed to clear UUIDs: Failed (0x03)
>>>>>> Apr 11 13:17:54 braindead.localdomain bluetoothd[4408]: Failed to add UUID: Failed (0x03)
>>>>>> Apr 11 13:17:54 braindead.localdomain bluetoothd[4408]: Failed to add UUID: Failed (0x03)
>>>>>> Apr 11 13:17:54 braindead.localdomain bluetoothd[4408]: Failed to add UUID: Failed (0x03)
>>>>>> Apr 11 13:17:54 braindead.localdomain wireplumber[2139]: org.bluez.GattManager1.RegisterApplication() failed: GDBus.Error:org.freedesktop.DBus.Error.UnknownMethod: Invalid method call
>>>>>> Apr 11 13:17:54 braindead.localdomain wireplumber[2139]: org.bluez.GattManager1.RegisterApplication() failed: GDBus.Error:org.freedesktop.DBus.Error.UnknownMethod: Invalid method call
>>>>>> Apr 11 13:17:54 braindead.localdomain kernel: Bluetooth: hci0: setting up ROME/QCA6390
>>>>>> Apr 11 13:17:54 braindead.localdomain kernel: Bluetooth: RFCOMM TTY layer initialized
>>>>>> Apr 11 13:17:54 braindead.localdomain kernel: Bluetooth: RFCOMM socket layer initialized
>>>>>> Apr 11 13:17:54 braindead.localdomain kernel: Bluetooth: RFCOMM ver 1.11
>>>>>>
>>>>>> ... skip some logs about registering modules in the bluetoothd ...
>>>>>>
>>>>>> Apr 11 13:17:54 braindead.localdomain kernel: Bluetooth: hci0: QCA Product ID   :0x00000010
>>>>>> Apr 11 13:17:54 braindead.localdomain kernel: Bluetooth: hci0: QCA SOC Version  :0x400a0200
>>>>>> Apr 11 13:17:54 braindead.localdomain kernel: Bluetooth: hci0: QCA ROM Version  :0x00000200
>>>>>> Apr 11 13:17:54 braindead.localdomain kernel: Bluetooth: hci0: QCA Patch Version:0x00003ac0
>>>>>> Apr 11 13:17:54 braindead.localdomain kernel: Bluetooth: hci0: QCA controller version 0x02000200
>>>>>> Apr 11 13:17:54 braindead.localdomain kernel: Bluetooth: hci0: QCA Downloading qca/htbtfw20.tlv
>>>>>> Apr 11 13:17:54 braindead.localdomain kernel: Bluetooth: hci0: QCA Failed to send TLV segment (-110)
>>>>>> Apr 11 13:17:54 braindead.localdomain kernel: Bluetooth: hci0: QCA Failed to download patch (-110)
>>>>>> Apr 11 13:17:54 braindead.localdomain kernel: Bluetooth: hci0: Retry BT power ON:0
>>>>>> Apr 11 13:17:57 braindead.localdomain kernel: Bluetooth: hci0: command 0xfc00 tx timeout
>>>>>> Apr 11 13:17:57 braindead.localdomain kernel: Bluetooth: hci0: Reading QCA version information failed (-110)
>>>>>> Apr 11 13:17:57 braindead.localdomain kernel: Bluetooth: hci0: Retry BT power ON:1
>>>>>> Apr 11 13:17:59 braindead.localdomain kernel: Bluetooth: hci0: command 0xfc00 tx timeout
>>>>>> Apr 11 13:17:59 braindead.localdomain kernel: Bluetooth: hci0: Reading QCA version information failed (-110)
>>>>>> Apr 11 13:17:59 braindead.localdomain kernel: Bluetooth: hci0: Retry BT power ON:2
>>>>>> Apr 11 13:18:01 braindead.localdomain bluetoothd[4408]: Failed to set mode: Authentication Failed (0x05)
>>>>>> Apr 11 13:18:01 braindead.localdomain kernel: Bluetooth: hci0: command 0xfc00 tx timeout
>>>>>> Apr 11 13:18:01 braindead.localdomain kernel: Bluetooth: hci0: Reading QCA version information failed (-110)
>>>>>> Apr 11 13:18:01 braindead.localdomain bluetoothd[4408]: Failed to add UUID: Failed (0x03)
>>>>>> Apr 11 13:18:01 braindead.localdomain bluetoothd[4408]: Failed to add UUID: Failed (0x03)
>>>>>> Apr 11 13:18:01 braindead.localdomain bluetoothd[4408]: Too small Add Device complete event
>>>>>> Apr 11 13:18:01 braindead.localdomain bluetoothd[4408]: Failed to add UUID: Failed (0x03)
>>>>>> Apr 11 13:18:01 braindead.localdomain bluetoothd[4408]: Failed to add UUID: Failed (0x03)
>>>>>> Apr 11 13:18:01 braindead.localdomain bluetoothd[4408]: Failed to add UUID: Failed (0x03)
>>>>>> Apr 11 13:18:01 braindead.localdomain bluetoothd[4408]: Failed to add UUID: Failed (0x03)
>>>>>> Apr 11 13:18:01 braindead.localdomain bluetoothd[4408]: Failed to add UUID: Failed (0x03)
>>>>>> Apr 11 13:18:01 braindead.localdomain bluetoothd[4408]: Failed to add UUID: Failed (0x03)
>>>>>
>>>>> I have captured a full log of my system since boot including debug messages for the hci_hca.c file. Should I attach that log to a message here? In general, I am not totally certain of how I should track the troubleshooting for this problem. Do y'all want it on the mailing list?
>>>>>
>>>>>>
>>>>>> It looks like the firmware is failing to load. Is there some kind of time limit on loading the firmware after the module is loaded?
>>>>>>
>>>>>> Why would this work if I allow the service to be started on boot, but not if I wait until after logging into GNOME?
>>>>>>
>>>>>>>> So, I suspsect that the process of closing out the hardware may be leaving it in a state that the reset cannot handle (and probably never could handle).
>>>>>>>>
>>>>>>>> I also found that qualcomm has docs here: https://www.qualcomm.com/products/technology/wi-fi/fastconnect/fastconnect-6800#Documentation
>>>>>>>>
>>>>>>>> However, I am not a member of a Qualcomm verified company (mentioned in the doc links). Luiz, Marcel, or Johan, do you have any contacts that might be able to help me in getting info about the technical docs for this hardware? I would love to see if I can find any issues in how the hardware is being reset.
>>>>>>>>
>>>>>>>> As an independent dev, I don't even know what it takes to get that kind of access. I would welcome any help here. Hey Qualcomm, are you hiring? :P
>>>>>>>>
>>>>>>>> wt
>>>>>>>
>>>>>>
>>>>>
>>>> Hi Wren,
>>>>
>>>> 1) Apply below patch series
>>>> https://patchwork.kernel.org/project/bluetooth/list/?series=844357
>>>>
>>>> 2) Disable BT
>>>>
>>>> 3) Power off
>>>>
>>>> 4) Power on
>>>>
>>>> 5) enable more logs
>>>> echo "module hci_uart  +pft" > /sys/kernel/debug/dynamic_debug/control
>>>> echo "module btqca  +pft" > /sys/kernel/debug/dynamic_debug/control
>>>>
>>>> 6) enable BT
>>>>
>>>> 7) then check this issue again. several disable/enable or reboot cycles.
>>>
>>> Working on it.
>>>
>>> What would you like me to capture from the logs, only kernel log or kernel+bluetooth service or something else?
>>>
>> only kernel log.
>>> Also, how would you like me to share the logs? Do you want me to attach them to a reply mail or paste them into the body of a reply email or something else?
>>>
>> you maybe report this issue to bugzilla and track with bugzilla if you is easy for you. otherwise, paste them into the body of a reply email.
>
> Done...https://bugzilla.kernel.org/show_bug.cgi?id=218726. See you in bugzilla.
>
from log. it seems you don't apply the patch series successfully form log. i will respond at the bugzilla further

2024-04-15 11:34:49

by Zijun Hu

[permalink] [raw]
Subject: Re: QCA6390 bluetooth doesn't work after warm boot or disable/reenable

On 4/15/2024 4:51 PM, Wren Turkal wrote:
> On 4/15/24 1:07 AM, quic_zijuhu wrote:
>> On 4/15/2024 3:52 PM, Wren Turkal wrote:
>>> On 4/14/24 5:04 AM, quic_zijuhu wrote:
>>>> On 4/13/2024 3:46 AM, Wren Turkal wrote:
>>>>> On 4/11/24 1:30 PM, Wren Turkal wrote:
>>>>>> On 4/10/24 3:40 PM, Wren Turkal wrote:
>>>>>>> On 4/10/24 3:00 PM, Wren Turkal wrote:
>>>>>>>> +Johan since he's a former BT drivers maintainer.
>>>>>>>>
>>>>>>>> On 4/9/24 1:11 PM, Wren Turkal wrote:
>>>>>>>>> On 4/9/24 1:03 PM, Luiz Augusto von Dentz wrote:
>>>>>>>>>> 5.19 seems a little too old, imo, or has it been broken for that long,
>>>>>>>>>> did you at least tried with bluetooth-next? Try contacting the people
>>>>>>>>>> who actually wrote the driver.
>>>>>>>>>
>>>>>>>>> Sorry, I didn't answer your question. Yes, I do think it's been broken for longer than that, but I wanted to confirm.
>>>>>>>>
>>>>>>>> Okay, so I tried 6.9-rc3 and every main release 5.19-6.8.
>>>>>>>>
>>>>>>>> I have found the following:
>>>>>>>>
>>>>>>>> * older kernels (6.3 and before) seem to be far less likely to kill on a cycling the bluetooth service.
>>>>>>>> * 6.8/6.9-rcs consistently destroy bluetooth when stopping and restarting the service
>>>>>>>> * If I destroy the bluetooth service with a BT service restart in 6.9-rc3 and warm reboot into any release back to 5.19, bluetooth does not work
>>>>>>>> * cold boot works in all cases assuming I give the laptop about 5s between power off/on
>>>>>>>
>>>>>>> I just did another experiment on 6.9-rc3. I blacklisted relevant bluetooth modules and then warm booted without the blacklist. I did this for both the "bluetooth" and "btqca" modules. In both cases, I cold booted with and appropriate "module_blacklist" kernel arg. After the boot, I verified the module was not loaded. I then warm booted without the blacklist, and the bluetooth works, so bluetooth only seems to fail when the linux module code for closing the device is run before a warm boot.
>>>>>>
>>>>>> And another experiment. I disabled the bluetooth.service and bluetooth.target with systemctl. I then shutdown and cold booted. After logging into GNOME, starting the service. Similar failures show up in the kernel logs as after the failure during a warm boot:
>>>>>>
>>>>>> Apr 11 13:17:54 braindead.localdomain bluetoothd[4408]: Bluetooth management interface 1.22 initialized
>>>>>> Apr 11 13:17:54 braindead.localdomain bluetoothd[4408]: src/adapter.c:reset_adv_monitors_complete() Failed to reset Adv Monitors: Failed (0x03)
>>>>>> Apr 11 13:17:54 braindead.localdomain bluetoothd[4408]: Battery Provider Manager created
>>>>>> Apr 11 13:17:54 braindead.localdomain kernel: Bluetooth: MGMT ver 1.22
>>>>>> Apr 11 13:17:54 braindead.localdomain bluetoothd[4408]: src/device.c:device_set_wake_support() Unable to set wake_support without RPA resolution
>>>>>> Apr 11 13:17:54 braindead.localdomain bluetoothd[4408]: Failed to clear UUIDs: Failed (0x03)
>>>>>> Apr 11 13:17:54 braindead.localdomain bluetoothd[4408]: Failed to add UUID: Failed (0x03)
>>>>>> Apr 11 13:17:54 braindead.localdomain bluetoothd[4408]: Failed to add UUID: Failed (0x03)
>>>>>> Apr 11 13:17:54 braindead.localdomain bluetoothd[4408]: Failed to add UUID: Failed (0x03)
>>>>>> Apr 11 13:17:54 braindead.localdomain wireplumber[2139]: org.bluez.GattManager1.RegisterApplication() failed: GDBus.Error:org.freedesktop.DBus.Error.UnknownMethod: Invalid method call
>>>>>> Apr 11 13:17:54 braindead.localdomain wireplumber[2139]: org.bluez.GattManager1.RegisterApplication() failed: GDBus.Error:org.freedesktop.DBus.Error.UnknownMethod: Invalid method call
>>>>>> Apr 11 13:17:54 braindead.localdomain kernel: Bluetooth: hci0: setting up ROME/QCA6390
>>>>>> Apr 11 13:17:54 braindead.localdomain kernel: Bluetooth: RFCOMM TTY layer initialized
>>>>>> Apr 11 13:17:54 braindead.localdomain kernel: Bluetooth: RFCOMM socket layer initialized
>>>>>> Apr 11 13:17:54 braindead.localdomain kernel: Bluetooth: RFCOMM ver 1.11
>>>>>>
>>>>>> ... skip some logs about registering modules in the bluetoothd ...
>>>>>>
>>>>>> Apr 11 13:17:54 braindead.localdomain kernel: Bluetooth: hci0: QCA Product ID   :0x00000010
>>>>>> Apr 11 13:17:54 braindead.localdomain kernel: Bluetooth: hci0: QCA SOC Version  :0x400a0200
>>>>>> Apr 11 13:17:54 braindead.localdomain kernel: Bluetooth: hci0: QCA ROM Version  :0x00000200
>>>>>> Apr 11 13:17:54 braindead.localdomain kernel: Bluetooth: hci0: QCA Patch Version:0x00003ac0
>>>>>> Apr 11 13:17:54 braindead.localdomain kernel: Bluetooth: hci0: QCA controller version 0x02000200
>>>>>> Apr 11 13:17:54 braindead.localdomain kernel: Bluetooth: hci0: QCA Downloading qca/htbtfw20.tlv
>>>>>> Apr 11 13:17:54 braindead.localdomain kernel: Bluetooth: hci0: QCA Failed to send TLV segment (-110)
>>>>>> Apr 11 13:17:54 braindead.localdomain kernel: Bluetooth: hci0: QCA Failed to download patch (-110)
>>>>>> Apr 11 13:17:54 braindead.localdomain kernel: Bluetooth: hci0: Retry BT power ON:0
>>>>>> Apr 11 13:17:57 braindead.localdomain kernel: Bluetooth: hci0: command 0xfc00 tx timeout
>>>>>> Apr 11 13:17:57 braindead.localdomain kernel: Bluetooth: hci0: Reading QCA version information failed (-110)
>>>>>> Apr 11 13:17:57 braindead.localdomain kernel: Bluetooth: hci0: Retry BT power ON:1
>>>>>> Apr 11 13:17:59 braindead.localdomain kernel: Bluetooth: hci0: command 0xfc00 tx timeout
>>>>>> Apr 11 13:17:59 braindead.localdomain kernel: Bluetooth: hci0: Reading QCA version information failed (-110)
>>>>>> Apr 11 13:17:59 braindead.localdomain kernel: Bluetooth: hci0: Retry BT power ON:2
>>>>>> Apr 11 13:18:01 braindead.localdomain bluetoothd[4408]: Failed to set mode: Authentication Failed (0x05)
>>>>>> Apr 11 13:18:01 braindead.localdomain kernel: Bluetooth: hci0: command 0xfc00 tx timeout
>>>>>> Apr 11 13:18:01 braindead.localdomain kernel: Bluetooth: hci0: Reading QCA version information failed (-110)
>>>>>> Apr 11 13:18:01 braindead.localdomain bluetoothd[4408]: Failed to add UUID: Failed (0x03)
>>>>>> Apr 11 13:18:01 braindead.localdomain bluetoothd[4408]: Failed to add UUID: Failed (0x03)
>>>>>> Apr 11 13:18:01 braindead.localdomain bluetoothd[4408]: Too small Add Device complete event
>>>>>> Apr 11 13:18:01 braindead.localdomain bluetoothd[4408]: Failed to add UUID: Failed (0x03)
>>>>>> Apr 11 13:18:01 braindead.localdomain bluetoothd[4408]: Failed to add UUID: Failed (0x03)
>>>>>> Apr 11 13:18:01 braindead.localdomain bluetoothd[4408]: Failed to add UUID: Failed (0x03)
>>>>>> Apr 11 13:18:01 braindead.localdomain bluetoothd[4408]: Failed to add UUID: Failed (0x03)
>>>>>> Apr 11 13:18:01 braindead.localdomain bluetoothd[4408]: Failed to add UUID: Failed (0x03)
>>>>>> Apr 11 13:18:01 braindead.localdomain bluetoothd[4408]: Failed to add UUID: Failed (0x03)
>>>>>
>>>>> I have captured a full log of my system since boot including debug messages for the hci_hca.c file. Should I attach that log to a message here? In general, I am not totally certain of how I should track the troubleshooting for this problem. Do y'all want it on the mailing list?
>>>>>
>>>>>>
>>>>>> It looks like the firmware is failing to load. Is there some kind of time limit on loading the firmware after the module is loaded?
>>>>>>
>>>>>> Why would this work if I allow the service to be started on boot, but not if I wait until after logging into GNOME?
>>>>>>
>>>>>>>> So, I suspsect that the process of closing out the hardware may be leaving it in a state that the reset cannot handle (and probably never could handle).
>>>>>>>>
>>>>>>>> I also found that qualcomm has docs here: https://www.qualcomm.com/products/technology/wi-fi/fastconnect/fastconnect-6800#Documentation
>>>>>>>>
>>>>>>>> However, I am not a member of a Qualcomm verified company (mentioned in the doc links). Luiz, Marcel, or Johan, do you have any contacts that might be able to help me in getting info about the technical docs for this hardware? I would love to see if I can find any issues in how the hardware is being reset.
>>>>>>>>
>>>>>>>> As an independent dev, I don't even know what it takes to get that kind of access. I would welcome any help here. Hey Qualcomm, are you hiring? :P
>>>>>>>>
>>>>>>>> wt
>>>>>>>
>>>>>>
>>>>>
>>>> Hi Wren,
>>>>
>>>> 1) Apply below patch series
>>>> https://patchwork.kernel.org/project/bluetooth/list/?series=844357
>>>>
>>>> 2) Disable BT
>>>>
>>>> 3) Power off
>>>>
>>>> 4) Power on
>>>>
>>>> 5) enable more logs
>>>> echo "module hci_uart  +pft" > /sys/kernel/debug/dynamic_debug/control
>>>> echo "module btqca  +pft" > /sys/kernel/debug/dynamic_debug/control
>>>>
>>>> 6) enable BT
>>>>
>>>> 7) then check this issue again. several disable/enable or reboot cycles.
>>>
>>> Working on it.
>>>
>>> What would you like me to capture from the logs, only kernel log or kernel+bluetooth service or something else?
>>>
>> only kernel log.
>>> Also, how would you like me to share the logs? Do you want me to attach them to a reply mail or paste them into the body of a reply email or something else?
>>>
>> you maybe report this issue to bugzilla and track with bugzilla if you is easy for you. otherwise, paste them into the body of a reply email.
>
> Done...https://bugzilla.kernel.org/show_bug.cgi?id=218726. See you in bugzilla.
>
i have reverted below fix
Fixes: 56d074d26c58 ("Bluetooth: hci_qca: don't use IS_ERR_OR_NULL() with gpiod_get_optional()")
update the patch [v1,2/2] to
https://patchwork.kernel.org/project/bluetooth/patch/[email protected]/

you maybe apply it and try again.