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

From: Alan Stern
Date: Sun Nov 19 2023 - 10:56:39 EST


On Sun, Nov 19, 2023 at 02:42:58PM +0100, Paul Menzel wrote:
> [Fix typo in subject line]
>
> Dear Linux folks,
>
>
> On the Dell XPS 13 9360 from 2016, BIOS 2.21.0 06/02/2022, with Debian
> sid/unstable and Debian’s Linux 6.5.10 kernel, I am trying to extend the
> run-time with battery, at under 50 % of it’s original capacity, and I am
> using PowerTOP 2.15.

> Although radio/wireless devices are turned off in GNOME, PowerTOP shows the
> Bluetooth device drawing 0.85 W of energy:
>
> 848 mW 100.0% Device USB device: usb-device-0cf3-e300
>
> $ lsusb -d 0cf3:e300
> Bus 001 Device 002: ID 0cf3:e300 Qualcomm Atheros Communications QCA61x4
> Bluetooth 4.0

> After unloading the module `btusb`, the entry disappears from the PowerTOP
> list after a while.
>
> usbcore: deregistering interface driver btusb
>
> Auto-suspend was enabled for the device. (Though it shouldn’t have mattered
> as it was disabled in GNOME?)

Enabling autosuspend means that the device _may_ go into runtime suspend
when it's not being used. Whether it _will_ do so depends on the driver
(btusb in this case).

> Anyways, have you heard of such an issue? Can I provide more information, to
> get it to not use any energy while being disable in GNOME?

What is the output from

grep . /sys/bus/usb/devices/1-3/power/*

both with and without the btusb module loaded?

Alan Stern

> $ lsusb -t
> /: Bus 04.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/2p, 10000M
> |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/4p, 10000M
> |__ Port 2: Dev 3, If 0, Class=Vendor Specific Class, Driver=r8152,
> 5000M
> /: Bus 03.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/2p, 480M
> |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/5p, 480M
> |__ Port 1: Dev 3, If 0, Class=Human Interface Device,
> Driver=usbhid, 12M
> /: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/6p, 5000M
> /: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/12p, 480M
> |__ Port 3: Dev 2, If 0, Class=Wireless, Driver=, 12M
> |__ Port 3: Dev 2, If 1, Class=Wireless, Driver=, 12M
> |__ Port 4: Dev 3, If 0, Class=Human Interface Device, Driver=usbhid,
> 12M
> |__ Port 5: Dev 4, If 0, Class=Video, Driver=uvcvideo, 480M
> |__ Port 5: Dev 4, If 1, Class=Video, Driver=uvcvideo, 480M
> ```