linux-bluetooth.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* QCA6390 bluetooth doesn't work after warm boot or disable/reenable
@ 2024-04-04 19:14 Wren Turkal
  2024-04-05  5:30 ` Wren Turkal
  2024-04-06 20:16 ` Wren Turkal
  0 siblings, 2 replies; 25+ messages in thread
From: Wren Turkal @ 2024-04-04 19:14 UTC (permalink / raw)
  To: ath11k, linux-bluetooth

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!

^ permalink raw reply	[flat|nested] 25+ messages in thread

* QCA6390 bluetooth doesn't work after warm boot or disable/reenable
  2024-04-04 19:14 QCA6390 bluetooth doesn't work after warm boot or disable/reenable Wren Turkal
@ 2024-04-05  5:30 ` Wren Turkal
  2024-04-06 20:16 ` Wren Turkal
  1 sibling, 0 replies; 25+ messages in thread
From: Wren Turkal @ 2024-04-05  5:30 UTC (permalink / raw)
  To: linux-bluetooth


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!

^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: QCA6390 bluetooth doesn't work after warm boot or disable/reenable
  2024-04-04 19:14 QCA6390 bluetooth doesn't work after warm boot or disable/reenable Wren Turkal
  2024-04-05  5:30 ` Wren Turkal
@ 2024-04-06 20:16 ` Wren Turkal
  2024-04-06 20:27   ` Wren Turkal
  1 sibling, 1 reply; 25+ messages in thread
From: Wren Turkal @ 2024-04-06 20:16 UTC (permalink / raw)
  To: ath11k, linux-bluetooth

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!

^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: QCA6390 bluetooth doesn't work after warm boot or disable/reenable
  2024-04-06 20:16 ` Wren Turkal
@ 2024-04-06 20:27   ` Wren Turkal
  2024-04-06 20:29     ` Wren Turkal
                       ` (2 more replies)
  0 siblings, 3 replies; 25+ messages in thread
From: Wren Turkal @ 2024-04-06 20:27 UTC (permalink / raw)
  To: ath11k, linux-bluetooth, Kalle Valo

+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!

^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: QCA6390 bluetooth doesn't work after warm boot or disable/reenable
  2024-04-06 20:27   ` Wren Turkal
@ 2024-04-06 20:29     ` Wren Turkal
  2024-04-06 20:50       ` Wren Turkal
  2024-04-08  5:22     ` Kalle Valo
  2024-04-08 19:49     ` Wren Turkal
  2 siblings, 1 reply; 25+ messages in thread
From: Wren Turkal @ 2024-04-06 20:29 UTC (permalink / raw)
  To: ath11k, linux-bluetooth, Kalle Valo, Ben Young Tae Kim

+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!

^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: QCA6390 bluetooth doesn't work after warm boot or disable/reenable
  2024-04-06 20:29     ` Wren Turkal
@ 2024-04-06 20:50       ` Wren Turkal
  0 siblings, 0 replies; 25+ messages in thread
From: Wren Turkal @ 2024-04-06 20:50 UTC (permalink / raw)
  To: ath11k, linux-bluetooth, Kalle Valo, Ben Young Tae Kim

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!

^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: QCA6390 bluetooth doesn't work after warm boot or disable/reenable
  2024-04-06 20:27   ` Wren Turkal
  2024-04-06 20:29     ` Wren Turkal
@ 2024-04-08  5:22     ` Kalle Valo
  2024-04-08 18:35       ` Wren Turkal
  2024-04-08 19:49     ` Wren Turkal
  2 siblings, 1 reply; 25+ messages in thread
From: Kalle Valo @ 2024-04-08  5:22 UTC (permalink / raw)
  To: Wren Turkal; +Cc: ath11k, linux-bluetooth

Wren Turkal <wt@penguintechs.org> 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

^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: QCA6390 bluetooth doesn't work after warm boot or disable/reenable
  2024-04-08  5:22     ` Kalle Valo
@ 2024-04-08 18:35       ` Wren Turkal
  2024-04-10  7:21         ` Kalle Valo
  0 siblings, 1 reply; 25+ messages in thread
From: Wren Turkal @ 2024-04-08 18:35 UTC (permalink / raw)
  To: Kalle Valo; +Cc: ath11k, linux-bluetooth

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!

^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: QCA6390 bluetooth doesn't work after warm boot or disable/reenable
  2024-04-06 20:27   ` Wren Turkal
  2024-04-06 20:29     ` Wren Turkal
  2024-04-08  5:22     ` Kalle Valo
@ 2024-04-08 19:49     ` Wren Turkal
  2024-04-09 19:53       ` Wren Turkal
  2 siblings, 1 reply; 25+ messages in thread
From: Wren Turkal @ 2024-04-08 19:49 UTC (permalink / raw)
  To: ath11k, linux-bluetooth, Kalle Valo, Marcel Holtmann,
	Luiz Augusto von Dentz

+Marcel Holtmann <marcel@holtmann.org>
+Luiz Augusto von Dentz <luiz.dentz@gmail.com>

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!

^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: QCA6390 bluetooth doesn't work after warm boot or disable/reenable
  2024-04-08 19:49     ` Wren Turkal
@ 2024-04-09 19:53       ` Wren Turkal
  2024-04-09 20:02         ` Wren Turkal
  2024-04-09 20:03         ` Luiz Augusto von Dentz
  0 siblings, 2 replies; 25+ messages in thread
From: Wren Turkal @ 2024-04-09 19:53 UTC (permalink / raw)
  To: ath11k, linux-bluetooth, Kalle Valo, Marcel Holtmann,
	Luiz Augusto von Dentz

On 4/8/24 12:49 PM, Wren Turkal wrote:
> +Marcel Holtmann <marcel@holtmann.org>
> +Luiz Augusto von Dentz <luiz.dentz@gmail.com>
> 
> 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!

^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: QCA6390 bluetooth doesn't work after warm boot or disable/reenable
  2024-04-09 19:53       ` Wren Turkal
@ 2024-04-09 20:02         ` Wren Turkal
  2024-04-09 20:03         ` Luiz Augusto von Dentz
  1 sibling, 0 replies; 25+ messages in thread
From: Wren Turkal @ 2024-04-09 20:02 UTC (permalink / raw)
  To: ath11k, linux-bluetooth, Kalle Valo, Marcel Holtmann,
	Luiz Augusto von Dentz

On 4/9/24 12:53 PM, Wren Turkal wrote:
> On 4/8/24 12:49 PM, Wren Turkal wrote:
>> +Marcel Holtmann <marcel@holtmann.org>
>> +Luiz Augusto von Dentz <luiz.dentz@gmail.com>
>>
>> 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!

^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: QCA6390 bluetooth doesn't work after warm boot or disable/reenable
  2024-04-09 19:53       ` Wren Turkal
  2024-04-09 20:02         ` Wren Turkal
@ 2024-04-09 20:03         ` Luiz Augusto von Dentz
  2024-04-09 20:09           ` Wren Turkal
  2024-04-09 20:11           ` Wren Turkal
  1 sibling, 2 replies; 25+ messages in thread
From: Luiz Augusto von Dentz @ 2024-04-09 20:03 UTC (permalink / raw)
  To: Wren Turkal; +Cc: ath11k, linux-bluetooth, Kalle Valo, Marcel Holtmann

Hi Wren,

On Tue, Apr 9, 2024 at 3:53 PM Wren Turkal <wt@penguintechs.org> wrote:
>
> On 4/8/24 12:49 PM, Wren Turkal wrote:
> > +Marcel Holtmann <marcel@holtmann.org>
> > +Luiz Augusto von Dentz <luiz.dentz@gmail.com>
> >
> > 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

^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: QCA6390 bluetooth doesn't work after warm boot or disable/reenable
  2024-04-09 20:03         ` Luiz Augusto von Dentz
@ 2024-04-09 20:09           ` Wren Turkal
  2024-04-09 20:11           ` Wren Turkal
  1 sibling, 0 replies; 25+ messages in thread
From: Wren Turkal @ 2024-04-09 20:09 UTC (permalink / raw)
  To: Luiz Augusto von Dentz
  Cc: ath11k, linux-bluetooth, Kalle Valo, Marcel Holtmann

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 <wt@penguintechs.org> wrote:
>>
>> On 4/8/24 12:49 PM, Wren Turkal wrote:
>>> +Marcel Holtmann <marcel@holtmann.org>
>>> +Luiz Augusto von Dentz <luiz.dentz@gmail.com>
>>>
>>> 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!

^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: QCA6390 bluetooth doesn't work after warm boot or disable/reenable
  2024-04-09 20:03         ` Luiz Augusto von Dentz
  2024-04-09 20:09           ` Wren Turkal
@ 2024-04-09 20:11           ` Wren Turkal
  2024-04-10 22:00             ` Wren Turkal
  1 sibling, 1 reply; 25+ messages in thread
From: Wren Turkal @ 2024-04-09 20:11 UTC (permalink / raw)
  To: Luiz Augusto von Dentz
  Cc: ath11k, linux-bluetooth, Kalle Valo, Marcel Holtmann

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!

^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: QCA6390 bluetooth doesn't work after warm boot or disable/reenable
  2024-04-08 18:35       ` Wren Turkal
@ 2024-04-10  7:21         ` Kalle Valo
  0 siblings, 0 replies; 25+ messages in thread
From: Kalle Valo @ 2024-04-10  7:21 UTC (permalink / raw)
  To: Wren Turkal; +Cc: ath11k, linux-bluetooth

(please don't top post)

Wren Turkal <wt@penguintechs.org> 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

^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: QCA6390 bluetooth doesn't work after warm boot or disable/reenable
  2024-04-09 20:11           ` Wren Turkal
@ 2024-04-10 22:00             ` Wren Turkal
  2024-04-10 22:40               ` Wren Turkal
  0 siblings, 1 reply; 25+ messages in thread
From: Wren Turkal @ 2024-04-10 22:00 UTC (permalink / raw)
  To: Luiz Augusto von Dentz, Marcel Holtmann, Johan Hedberg
  Cc: ath11k, linux-bluetooth, Kalle Valo

+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!

^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: QCA6390 bluetooth doesn't work after warm boot or disable/reenable
  2024-04-10 22:00             ` Wren Turkal
@ 2024-04-10 22:40               ` Wren Turkal
  2024-04-11 20:30                 ` Wren Turkal
  0 siblings, 1 reply; 25+ messages in thread
From: Wren Turkal @ 2024-04-10 22:40 UTC (permalink / raw)
  To: Luiz Augusto von Dentz, Marcel Holtmann, Johan Hedberg
  Cc: ath11k, linux-bluetooth, Kalle Valo

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!

^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: QCA6390 bluetooth doesn't work after warm boot or disable/reenable
  2024-04-10 22:40               ` Wren Turkal
@ 2024-04-11 20:30                 ` Wren Turkal
  2024-04-12 19:46                   ` Wren Turkal
  0 siblings, 1 reply; 25+ messages in thread
From: Wren Turkal @ 2024-04-11 20:30 UTC (permalink / raw)
  To: Luiz Augusto von Dentz, Marcel Holtmann, Johan Hedberg
  Cc: ath11k, linux-bluetooth, Kalle Valo

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!

^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: QCA6390 bluetooth doesn't work after warm boot or disable/reenable
  2024-04-11 20:30                 ` Wren Turkal
@ 2024-04-12 19:46                   ` Wren Turkal
  2024-04-14 12:04                     ` quic_zijuhu
  0 siblings, 1 reply; 25+ messages in thread
From: Wren Turkal @ 2024-04-12 19:46 UTC (permalink / raw)
  To: Luiz Augusto von Dentz, Marcel Holtmann, Johan Hedberg
  Cc: ath11k, linux-bluetooth, Kalle Valo, Zijun Hu

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!

^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: QCA6390 bluetooth doesn't work after warm boot or disable/reenable
  2024-04-12 19:46                   ` Wren Turkal
@ 2024-04-14 12:04                     ` quic_zijuhu
  2024-04-15  7:52                       ` Wren Turkal
  0 siblings, 1 reply; 25+ messages in thread
From: quic_zijuhu @ 2024-04-14 12:04 UTC (permalink / raw)
  To: Wren Turkal, Luiz Augusto von Dentz, Marcel Holtmann, Johan Hedberg
  Cc: ath11k, linux-bluetooth, Kalle Valo

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.

^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: QCA6390 bluetooth doesn't work after warm boot or disable/reenable
  2024-04-14 12:04                     ` quic_zijuhu
@ 2024-04-15  7:52                       ` Wren Turkal
  2024-04-15  8:07                         ` quic_zijuhu
  0 siblings, 1 reply; 25+ messages in thread
From: Wren Turkal @ 2024-04-15  7:52 UTC (permalink / raw)
  To: quic_zijuhu, Luiz Augusto von Dentz, Marcel Holtmann, Johan Hedberg
  Cc: ath11k, linux-bluetooth, Kalle Valo

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!

^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: QCA6390 bluetooth doesn't work after warm boot or disable/reenable
  2024-04-15  7:52                       ` Wren Turkal
@ 2024-04-15  8:07                         ` quic_zijuhu
  2024-04-15  8:51                           ` Wren Turkal
  0 siblings, 1 reply; 25+ messages in thread
From: quic_zijuhu @ 2024-04-15  8:07 UTC (permalink / raw)
  To: Wren Turkal, Luiz Augusto von Dentz, Marcel Holtmann, Johan Hedberg
  Cc: ath11k, linux-bluetooth, Kalle Valo

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.

^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: QCA6390 bluetooth doesn't work after warm boot or disable/reenable
  2024-04-15  8:07                         ` quic_zijuhu
@ 2024-04-15  8:51                           ` Wren Turkal
  2024-04-15  9:29                             ` quic_zijuhu
  2024-04-15 11:34                             ` quic_zijuhu
  0 siblings, 2 replies; 25+ messages in thread
From: Wren Turkal @ 2024-04-15  8:51 UTC (permalink / raw)
  To: quic_zijuhu, Luiz Augusto von Dentz, Marcel Holtmann, Johan Hedberg
  Cc: ath11k, linux-bluetooth, Kalle Valo

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!

^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: QCA6390 bluetooth doesn't work after warm boot or disable/reenable
  2024-04-15  8:51                           ` Wren Turkal
@ 2024-04-15  9:29                             ` quic_zijuhu
  2024-04-15 11:34                             ` quic_zijuhu
  1 sibling, 0 replies; 25+ messages in thread
From: quic_zijuhu @ 2024-04-15  9:29 UTC (permalink / raw)
  To: Wren Turkal, Luiz Augusto von Dentz, Marcel Holtmann, Johan Hedberg
  Cc: ath11k, linux-bluetooth, Kalle Valo

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

^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: QCA6390 bluetooth doesn't work after warm boot or disable/reenable
  2024-04-15  8:51                           ` Wren Turkal
  2024-04-15  9:29                             ` quic_zijuhu
@ 2024-04-15 11:34                             ` quic_zijuhu
  1 sibling, 0 replies; 25+ messages in thread
From: quic_zijuhu @ 2024-04-15 11:34 UTC (permalink / raw)
  To: Wren Turkal, Luiz Augusto von Dentz, Marcel Holtmann, Johan Hedberg
  Cc: ath11k, linux-bluetooth, Kalle Valo

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/1713175927-13093-1-git-send-email-quic_zijuhu@quicinc.com/

you maybe apply it and try again.







^ permalink raw reply	[flat|nested] 25+ messages in thread

end of thread, other threads:[~2024-04-15 11:34 UTC | newest]

Thread overview: 25+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-04-04 19:14 QCA6390 bluetooth doesn't work after warm boot or disable/reenable Wren Turkal
2024-04-05  5:30 ` Wren Turkal
2024-04-06 20:16 ` Wren Turkal
2024-04-06 20:27   ` Wren Turkal
2024-04-06 20:29     ` Wren Turkal
2024-04-06 20:50       ` Wren Turkal
2024-04-08  5:22     ` Kalle Valo
2024-04-08 18:35       ` Wren Turkal
2024-04-10  7:21         ` Kalle Valo
2024-04-08 19:49     ` Wren Turkal
2024-04-09 19:53       ` Wren Turkal
2024-04-09 20:02         ` Wren Turkal
2024-04-09 20:03         ` Luiz Augusto von Dentz
2024-04-09 20:09           ` Wren Turkal
2024-04-09 20:11           ` Wren Turkal
2024-04-10 22:00             ` Wren Turkal
2024-04-10 22:40               ` Wren Turkal
2024-04-11 20:30                 ` Wren Turkal
2024-04-12 19:46                   ` Wren Turkal
2024-04-14 12:04                     ` quic_zijuhu
2024-04-15  7:52                       ` Wren Turkal
2024-04-15  8:07                         ` quic_zijuhu
2024-04-15  8:51                           ` Wren Turkal
2024-04-15  9:29                             ` quic_zijuhu
2024-04-15 11:34                             ` quic_zijuhu

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).