android_kernel_motorola_sm6375/drivers/bluetooth
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Luiz Augusto von Dentz d42c3fa120 Bluetooth: btusb: Fix regression with fake CSR controllers 0a12:0001
commit 2c1dda2acc4192d826e84008d963b528e24d12bc upstream.

Fake CSR controllers don't seem to handle short-transfer properly which
cause command to time out:

kernel: usb 1-1: new full-speed USB device number 19 using xhci_hcd
kernel: usb 1-1: New USB device found, idVendor=0a12, idProduct=0001, bcdDevice=88.91
kernel: usb 1-1: New USB device strings: Mfr=0, Product=2, SerialNumber=0
kernel: usb 1-1: Product: BT DONGLE10
...
Bluetooth: hci1: Opcode 0x1004 failed: -110
kernel: Bluetooth: hci1: command 0x1004 tx timeout

According to USB Spec 2.0 Section 5.7.3 Interrupt Transfer Packet Size
Constraints a interrupt transfer is considered complete when the size is 0
(ZPL) or < wMaxPacketSize:

 'When an interrupt transfer involves more data than can fit in one
 data payload of the currently established maximum size, all data
 payloads are required to be maximum-sized except for the last data
 payload, which will contain the remaining data. An interrupt transfer
 is complete when the endpoint does one of the following:

 • Has transferred exactly the amount of data expected
 • Transfers a packet with a payload size less than wMaxPacketSize or
 transfers a zero-length packet'

Link: https://bugzilla.kernel.org/show_bug.cgi?id=219365
Fixes: 7b05933340f4 ("Bluetooth: btusb: Fix not handling ZPL/short-transfer")
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2024-11-08 16:20:48 +01:00
..
ath3k.c Bluetooth: ath3k: Fix multiple issues reported by checkpatch.pl 2024-07-05 09:08:21 +02:00
bcm203x.c
bfusb.c
bluecard_cs.c
bpa10x.c
bt3c_cs.c
btbcm.c
btbcm.h
btintel.c Bluetooth: btintel: Fixe build regression 2024-04-13 12:51:40 +02:00
btintel.h
btmrvl_debugfs.c
btmrvl_drv.h
btmrvl_main.c
btmrvl_sdio.c Bluetooth: btmrvl: Use IRQF_NO_AUTOEN flag in request_irq() 2024-11-08 16:20:36 +01:00
btmrvl_sdio.h
btmtksdio.c
btmtkuart.c Bluetooth: btmtkuart: fix recv_buf() return value 2024-01-25 14:34:26 -08:00
btqca.c
btqca.h
btqcomsmd.c Bluetooth: btqcomsmd: Fix command timeout after setting BD address 2023-04-05 11:16:38 +02:00
btrsi.c
btrtl.c
btrtl.h
btsdio.c Bluetooth: btsdio: fix use after free bug in btsdio_remove due to race condition 2023-09-23 10:59:37 +02:00
btusb.c Bluetooth: btusb: Fix regression with fake CSR controllers 0a12:0001 2024-11-08 16:20:48 +01:00
btwilink.c
dtl1_cs.c
h4_recv.h
hci_ag6xx.c
hci_ath.c
hci_bcm.c
hci_bcsp.c Bluetooth: hci_bcsp: don't call kfree_skb() under spin_lock_irqsave() 2023-01-18 11:41:16 +01:00
hci_h4.c
hci_h5.c Bluetooth: hci_h5: don't call kfree_skb() under spin_lock_irqsave() 2023-01-18 11:41:16 +01:00
hci_intel.c
hci_ldisc.c Bluetooth: hci_ldisc: check HCI_UART_PROTO_READY flag in HCIUARTGETPROTO 2024-09-04 13:15:01 +02:00
hci_ll.c Bluetooth: hci_ll: don't call kfree_skb() under spin_lock_irqsave() 2023-01-18 11:41:16 +01:00
hci_mrvl.c
hci_nokia.c Bluetooth: nokia: fix value check in nokia_bluetooth_serdev_probe() 2023-09-23 10:59:42 +02:00
hci_qca.c Bluetooth: hci_qca: don't call kfree_skb() under spin_lock_irqsave() 2023-01-18 11:41:16 +01:00
hci_serdev.c
hci_uart.h
hci_vhci.c Bluetooth: vhci: Fix race when opening vhci device 2023-10-25 11:53:20 +02:00
Kconfig
Makefile