twx-linux/drivers
Trent Piepho 517b693351 Bluetooth: btusb: Always fallback to alt 1 for WBS
When alt mode 6 is not available, fallback to the kernel <= 5.7 behavior
of always using alt mode 1.

Prior to kernel 5.8, btusb would always use alt mode 1 for WBS (Wide
Band Speech aka mSBC aka transparent SCO).  In commit baac6276c0a9
("Bluetooth: btusb: handle mSBC audio over USB Endpoints") this
was changed to use alt mode 6, which is the recommended mode in the
Bluetooth spec (Specifications of the Bluetooth System, v5.0, Vol 4.B
§2.2.1).  However, many if not most BT USB adapters do not support alt
mode 6.  In fact, I have been unable to find any which do.

In kernel 5.8, this was changed to use alt mode 6, and if not available,
use alt mode 0.  But mode 0 has a zero byte max packet length and can
not possibly work.  It is just there as a zero-bandwidth dummy mode to
work around a USB flaw that would prevent device enumeration if
insufficient bandwidth were available for the lowest isoc mode
supported.

In effect, WBS was broken for all USB-BT adapters that do not support
alt 6, which appears to nearly all of them.

Then in commit 461f95f04f19 ("Bluetooth: btusb: USB alternate setting 1 for
WBS") the 5.7 behavior was restored, but only for Realtek adapters.

I've tested a Broadcom BRCM20702A and CSR 8510 adapter, both work with
the 5.7 behavior and do not with the 5.8.

So get rid of the Realtek specific flag and use the 5.7 behavior for all
adapters as a fallback when alt 6 is not available.  This was the
kernel's behavior prior to 5.8 and I can find no adapters for which it
is not correct.  And even if there is an adapter for which this does not
work, the current behavior would be to fall back to alt 0, which can not
possibly work either, and so is no better.

Signed-off-by: Trent Piepho <tpiepho@gmail.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
2020-12-18 22:22:20 +01:00
..
accessibility speakup: fix uninitialized flush_lock 2020-12-09 15:38:13 +01:00
acpi Driver core updates for 5.11-rc1 2020-12-15 14:02:26 -08:00
amba
android binder: add flag to clear buffer on txn complete 2020-12-09 15:41:21 +01:00
ata
atm
auxdisplay
base Driver core updates for 5.11-rc1 2020-12-15 14:02:26 -08:00
bcma
block zram: break the strict dependency from lzo 2020-12-15 12:13:47 -08:00
bluetooth Bluetooth: btusb: Always fallback to alt 1 for WBS 2020-12-18 22:22:20 +01:00
bus Char / Misc driver updates for 5.11-rc1 2020-12-15 14:10:09 -08:00
cdrom
char Char / Misc driver updates for 5.11-rc1 2020-12-15 14:10:09 -08:00
clk clk: renesas: r9a06g032: Drop __packed for portability 2020-12-07 13:58:49 -08:00
clocksource clocksource/drivers/sh_cmt: Fix potential deadlock when calling runtime PM 2020-12-07 20:10:05 +01:00
connector
counter counter: microchip-tcb-capture: Fix CMR value check 2020-12-03 19:40:31 +00:00
cpufreq
cpuidle Merge branch 'linus' into sched/core, to resolve semantic conflict 2020-11-27 11:10:50 +01:00
crypto Networking updates for 5.11 2020-12-15 13:22:29 -08:00
dax vm_ops: rename .split() callback to .may_split() 2020-12-15 12:13:41 -08:00
dca
devfreq
dio
dma
dma-buf Merge branch 'akpm' (patches from Andrew) 2020-12-15 12:53:37 -08:00
edac Merge branch 'akpm' (patches from Andrew) 2020-12-15 12:53:37 -08:00
eisa
extcon extcon: max77693: Fix modalias string 2020-12-11 17:18:10 +09:00
firewire
firmware Char / Misc driver updates for 5.11-rc1 2020-12-15 14:10:09 -08:00
fpga Merge 5.10-rc7 into char-misc-next 2020-12-07 10:08:14 +01:00
fsi fsi: Aspeed: Add mutex to protect HW access 2020-12-09 19:52:25 +01:00
gnss
gpio gpio: eic-sprd: break loop when getting NULL device resource 2020-12-09 09:41:49 +01:00
gpu Merge branch 'akpm' (patches from Andrew) 2020-12-15 12:53:37 -08:00
greybus
hid
hsi
hv
hwmon
hwspinlock
hwtracing Char / Misc driver updates for 5.11-rc1 2020-12-15 14:10:09 -08:00
i2c i2c: mlxbf: Fix the return check of devm_ioremap and ioremap 2020-12-05 14:52:35 +01:00
i3c
ide ide: remove BUG_ON(in_interrupt() || irqs_disabled()) from ide_unregister() 2020-12-15 12:13:36 -08:00
idle intel_idle: Build fix 2020-12-03 10:00:23 +01:00
iio Staging / IIO driver patches for 5.11-rc1 2020-12-15 14:18:40 -08:00
infiniband Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2020-12-11 22:29:38 -08:00
input Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input 2020-12-12 09:41:33 -08:00
interconnect interconnect changes for 5.11 2020-12-04 14:11:20 +01:00
iommu Yet another large set of x86 interrupt management updates: 2020-12-14 18:59:53 -08:00
ipack
irqchip
isdn
leds
lightnvm
macintosh macintosh/adb-iop: Send correct poll command 2020-12-07 10:48:16 +01:00
mailbox
mcb
md Revert "dm raid: fix discard limits for raid1 and raid10" 2020-12-14 12:12:08 -05:00
media Networking updates for 5.11 2020-12-15 13:22:29 -08:00
memory
memstick
message
mfd
misc Char / Misc driver updates for 5.11-rc1 2020-12-15 14:10:09 -08:00
mmc Char / Misc driver updates for 5.11-rc1 2020-12-15 14:10:09 -08:00
most
mtd mtd: rawnand: xway: Do not force a particular software ECC engine 2020-12-11 20:10:02 +01:00
mux
net USB / Thunderbolt patches for 5.11-rc1 2020-12-15 13:54:56 -08:00
nfc Networking updates for 5.11 2020-12-15 13:22:29 -08:00
ntb
nubus
nvdimm
nvme
nvmem nvmem: imx-ocotp: add support for the unaliged word count 2020-11-27 16:10:07 +01:00
of Driver core updates for 5.11-rc1 2020-12-15 14:02:26 -08:00
opp
oprofile
parisc
parport
pci Yet another large set of x86 interrupt management updates: 2020-12-14 18:59:53 -08:00
pcmcia
perf perf/imx_ddr: Add system PMU identifier for userspace 2020-12-09 14:14:02 +00:00
phy Char / Misc driver updates for 5.11-rc1 2020-12-15 14:10:09 -08:00
pinctrl Staging / IIO driver patches for 5.11-rc1 2020-12-15 14:18:40 -08:00
platform USB / Thunderbolt patches for 5.11-rc1 2020-12-15 13:54:56 -08:00
pnp
power
powercap
pps
ps3
ptp ptp: clockmatrix: deprecate firmware older than 4.8.7 2020-12-09 15:00:55 -08:00
pwm pwm: sl28cpld: fix getting driver data in pwm callbacks 2020-12-03 09:57:37 -08:00
rapidio
ras
regulator
remoteproc
reset
rpmsg
rtc ntp: Make the RTC sync offset less obscure 2020-12-11 10:40:53 +01:00
s390 Networking updates for 5.11 2020-12-15 13:22:29 -08:00
sbus
scsi Networking updates for 5.11 2020-12-15 13:22:29 -08:00
sfi
sh
siox siox: Make remove callback return void 2020-12-10 16:17:15 +01:00
slimbus slimbus: qcom: fix potential NULL dereference in qcom_slim_prg_slew() 2020-12-10 16:23:56 +01:00
soc Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2020-11-27 18:25:27 -08:00
soundwire soundwire: intel: fix another unused-function warning 2020-12-05 13:11:54 +05:30
spi
spmi spmi: Add driver shutdown support 2020-12-10 10:45:36 +01:00
ssb
staging Staging / IIO driver patches for 5.11-rc1 2020-12-15 14:18:40 -08:00
target
tc
tee Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 2020-12-14 12:18:19 -08:00
thermal
thunderbolt thunderbolt: Changes for v5.11 merge window 2020-12-08 13:41:45 +01:00
tty TTY/Serial patches for 5.11-rc1 2020-12-15 13:57:14 -08:00
uio uio: uio_hv_generic: use devm_kzalloc() for private data alloc 2020-12-09 19:59:00 +01:00
usb Char / Misc driver updates for 5.11-rc1 2020-12-15 14:10:09 -08:00
vdpa Merge branch 'mlx5-next' of git://git.kernel.org/pub/scm/linux/kernel/git/mellanox/linux 2020-12-07 18:36:21 -08:00
vfio vfio: platform: Switch to use platform_get_mem_or_io() 2020-12-10 16:31:46 +01:00
vhost vhost: vringh: use krealloc_array() 2020-12-15 12:13:37 -08:00
video drm for 5.11-rc1 2020-12-14 11:07:56 -08:00
virt
virtio mm, page_poison: remove CONFIG_PAGE_POISONING_NO_SANITY 2020-12-15 12:13:46 -08:00
visorbus
vlynq
vme vme: switch from 'pci_' to 'dma_' API 2020-12-09 19:44:34 +01:00
w1
watchdog
xen xen/unpopulated-alloc: consolidate pgmap manipulation 2020-12-15 12:13:40 -08:00
zorro
Kconfig
Makefile vdpa: mlx5: fix vdpa/vhost dependencies 2020-12-02 04:09:56 -05:00