Re: Qualcomm Atheros QCA61x4 keeps drawing 0.85 W despite Bluetooth being disable in GNOME

From: Paul Menzel
Date: Tue Nov 21 2023 - 12:13:24 EST


Dear Alan,


Thank you for your reply.

Am 21.11.23 um 17:23 schrieb Alan Stern:
On Mon, Nov 20, 2023 at 11:05:04PM +0100, Paul Menzel wrote:
[Cc: +Rocky Liao as Qualcomm developer]

Am 20.11.23 um 19:10 schrieb Alan Stern:
Again, nothing out of the ordinary. Maybe dynamic debugging will give
us a clue. Try doing this:

Unload the btusb module.

echo module usbcore +p >/sys/kernel/debug/dynamic_debug/control

Load the btusb module

Make sure that Bluetooth is turned off in Gnome

Wait a few seconds

echo module usbcore -p >/sys/kernel/debug/dynamic_debug/control

Then let's see what the dmesg log contains for that time period.

```
$ sudo modprobe -r btusb
$ sudo dmesg | tail -1
[340309.272439] usbcore: deregistering interface driver btusb
$ echo module usbcore +p | sudo tee /sys/kernel/debug/dynamic_debug/control
module usbcore +p
$ sudo modprobe btusb
$ /sbin/rfkill
ID TYPE DEVICE SOFT HARD
1 wlan phy0 unblocked unblocked
36 bluetooth hci0 blocked unblocked
$ echo module usbcore -p | sudo tee /sys/kernel/debug/dynamic_debug/control
module usbcore -p
$ sudo modprobe -r btusb
$ sudo dmesg | tail -1
[340608.761313] usbcore: deregistering interface driver btusb
$ sudo dmesg
[…]
[340309.272439] usbcore: deregistering interface driver btusb
[340560.326182] xhci_hcd 0000:00:14.0: hcd_pci_runtime_resume: 0
[340560.326214] usb usb1: usb auto-resume
[340560.326258] hub 1-0:1.0: hub_resume
[340560.326381] usb usb1-port3: status 0107 change 0000
[340560.326418] usb usb1-port4: status 0107 change 0000
[340560.326451] usb usb1-port5: status 0507 change 0000
[340560.326650] hub 1-0:1.0: state 7 ports 12 chg 0000 evt 0000
[340560.326807] hub 1-0:1.0: state 7 ports 12 chg 0000 evt 0000
[340560.373988] usb 1-3: usb auto-resume
[340560.373998] hub 1-0:1.0: state 7 ports 12 chg 0000 evt 0008
[340560.441936] usb 1-3: Waited 0ms for CONNECT
[340560.441957] usb 1-3: finish reset-resume
[340560.570940] usb 1-3: reset full-speed USB device number 2 using xhci_hcd

Those two lines are unexpected. Why does the device need to be reset?
While the btusb module is loaded, does anything show up in
/sys/bus/usb/devices/1-3/quirks?

$ more /sys/bus/usb/devices/1-3/quirks
0x2

Also, please post the output from "lsusb -v" for the Bluetooth device.

```
$ sudo lsusb -d 0cf3:e300 -v

Bus 001 Device 002: ID 0cf3:e300 Qualcomm Atheros Communications QCA61x4
Bluetooth 4.0
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.01
bDeviceClass 224 Wireless
bDeviceSubClass 1 Radio Frequency
bDeviceProtocol 1 Bluetooth
bMaxPacketSize0 64
idVendor 0x0cf3 Qualcomm Atheros Communications
idProduct 0xe300 QCA61x4 Bluetooth 4.0
bcdDevice 0.01
iManufacturer 0
iProduct 0
iSerial 0
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 0x00b1
bNumInterfaces 2
bConfigurationValue 1
iConfiguration 0
bmAttributes 0xe0
Self Powered
Remote Wakeup

That's what I was interested in. The device does support remote wakeup.

That would make sense so it can be resumed? (It does not necessarily mean something like Wake-On-LAN, right?

Also, for this device it’s disabled?

$ grep . /sys/bus/usb/devices/1-3/power/wakeup
disabled

PPS: Looking through the commit log/history for `drivers/bluetooth/btusb.c`,
I found commit 7ecacafc2406 (Bluetooth: btusb: Disable runtime suspend on
Realtek devices) [1] authored on December 5th, 2019. This is for Realtek
devices though, and not Qualcomm.

Furthermore the driver has changed considerably since 2019. See
commits 8274db0776d1, 895915226a59, 7bd9fb058d77, and 34ec58b9fd1c.

Thank you for the references.


Kind regards,

Paul