Hans de Goede
1fdb926974
Bluetooth: btusb: Use DMI matching for QCA reset_resume quirking
...
Commit 61f5acea87 ("Bluetooth: btusb: Restore QCA Rome suspend/resume fix
with a "rewritten" version") applied the USB_QUIRK_RESET_RESUME to all QCA
USB Bluetooth modules. But it turns out that the resume problems are not
caused by the QCA Rome chipset, on most platforms it resumes fine. The
resume problems are actually a platform problem (likely the platform
cutting all power when suspended).
The USB_QUIRK_RESET_RESUME quirk also disables runtime suspend, so by
matching on usb-ids, we're causing all boards with these chips to use extra
power, to fix resume problems which only happen on some boards.
This commit fixes this by applying the quirk based on DMI matching instead
of on usb-ids, so that we match the platform and not the chipset.
Here is the /sys/kernel/debug/usb/devices for the Bluetooth module:
T: Bus=01 Lev=01 Prnt=01 Port=07 Cnt=04 Dev#= 5 Spd=12 MxCh= 0
D: Ver= 2.01 Cls=e0(wlcon) Sub=01 Prot=01 MxPS=64 #Cfgs= 1
P: Vendor=0cf3 ProdID=e300 Rev= 0.01
C:* #Ifs= 2 Cfg#= 1 Atr=e0 MxPwr=100mA
I:* If#= 0 Alt= 0 #EPs= 3 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
E: Ad=81(I) Atr=03(Int.) MxPS= 16 Ivl=1ms
E: Ad=82(I) Atr=02(Bulk) MxPS= 64 Ivl=0ms
E: Ad=02(O) Atr=02(Bulk) MxPS= 64 Ivl=0ms
I:* If#= 1 Alt= 0 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
E: Ad=83(I) Atr=01(Isoc) MxPS= 0 Ivl=1ms
E: Ad=03(O) Atr=01(Isoc) MxPS= 0 Ivl=1ms
I: If#= 1 Alt= 1 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
E: Ad=83(I) Atr=01(Isoc) MxPS= 9 Ivl=1ms
E: Ad=03(O) Atr=01(Isoc) MxPS= 9 Ivl=1ms
I: If#= 1 Alt= 2 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
E: Ad=83(I) Atr=01(Isoc) MxPS= 17 Ivl=1ms
E: Ad=03(O) Atr=01(Isoc) MxPS= 17 Ivl=1ms
I: If#= 1 Alt= 3 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
E: Ad=83(I) Atr=01(Isoc) MxPS= 25 Ivl=1ms
E: Ad=03(O) Atr=01(Isoc) MxPS= 25 Ivl=1ms
I: If#= 1 Alt= 4 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
E: Ad=83(I) Atr=01(Isoc) MxPS= 33 Ivl=1ms
E: Ad=03(O) Atr=01(Isoc) MxPS= 33 Ivl=1ms
I: If#= 1 Alt= 5 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
E: Ad=83(I) Atr=01(Isoc) MxPS= 49 Ivl=1ms
E: Ad=03(O) Atr=01(Isoc) MxPS= 49 Ivl=1ms
BugLink: https://bugzilla.redhat.com/show_bug.cgi?id=1514836
Fixes: 61f5acea87 ("Bluetooth: btusb: Restore QCA Rome suspend/resume..")
Cc: stable@vger.kernel.org
Cc: Brian Norris <briannorris@chromium.org>
Cc: Kai-Heng Feng <kai.heng.feng@canonical.com>
Reported-and-tested-by: Kevin Fenzi <kevin@scrye.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
2018-02-25 21:07:10 +01:00
arch
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
2018-02-23 15:14:17 -08:00
block
blk: optimization for classic polling
2018-02-13 09:12:04 -07:00
certs
certs/blacklist_nohashes.c: fix const confusion in certs blacklist
2018-02-21 15:35:43 -08:00
crypto
X.509: fix NULL dereference when restricting key with unsupported_sig
2018-02-22 14:38:34 +00:00
Documentation
Merge branch 'i2c/for-current' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux
2018-02-23 14:41:14 -08:00
drivers
Bluetooth: btusb: Use DMI matching for QCA reset_resume quirking
2018-02-25 21:07:10 +01:00
firmware
kbuild: remove all dummy assignments to obj-
2017-11-18 11:46:06 +09:00
fs
Merge branch 'siginfo-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace
2018-02-22 17:04:06 -08:00
include
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
2018-02-23 15:14:17 -08:00
init
membarrier: Provide core serializing command, *_SYNC_CORE
2018-02-05 21:35:03 +01:00
ipc
vfs: do bulk POLL* -> EPOLL* replacement
2018-02-11 14:34:03 -08:00
kernel
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
2018-02-23 15:14:17 -08:00
lib
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/pmladek/printk
2018-02-23 14:57:20 -08:00
LICENSES
LICENSES: Add MPL-1.1 license
2018-01-06 10:59:44 -07:00
mm
mm: don't defer struct page initialization for Xen pv guests
2018-02-21 15:35:43 -08:00
net
net_sched: gen_estimator: fix broken estimators based on percpu stats
2018-02-23 12:35:46 -05:00
samples
sample/bpf: fix erspan metadata
2018-02-06 11:32:49 -05:00
scripts
Kbuild updates for v4.16 (2nd)
2018-02-09 19:32:41 -08:00
security
integrity/security: fix digsig.c build error with header file
2018-02-22 20:09:08 -08:00
sound
ALSA: hda/realtek: PCI quirk for Fujitsu U7x7
2018-02-14 12:02:26 +01:00
tools
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
2018-02-23 15:14:17 -08:00
usr
initramfs: fix initramfs rebuilds w/ compression after disabling
2017-11-03 07:39:19 -07:00
virt
vfs: do bulk POLL* -> EPOLL* replacement
2018-02-11 14:34:03 -08:00
.cocciconfig
.get_maintainer.ignore
.gitattributes
.gitattributes: set git diff driver for C source code files
2016-10-07 18:46:30 -07:00
.gitignore
.gitignore: ignore ASN.1 auto generated files
2018-02-14 21:05:38 +01:00
.mailmap
mailmap: update Mark Yao's email address
2018-01-04 16:45:09 -08:00
COPYING
CREDITS
MAINTAINERS: update TPM driver infrastructure changes
2017-11-09 17:58:40 -08:00
Kbuild
Kbuild updates for v4.15
2017-11-17 17:45:29 -08:00
Kconfig
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
MAINTAINERS
MAINTAINERS: Remove Richard Purdie from LED maintainers
2018-02-19 20:23:49 +01:00
Makefile
Linux 4.16-rc2
2018-02-18 17:29:42 -08:00
README
README: add a new README file, pointing to the Documentation/
2016-10-24 08:12:35 -02:00