1
linux/drivers/bluetooth
Luiz Augusto von Dentz 2c1dda2acc Bluetooth: btusb: Fix regression with fake CSR controllers 0a12:0001
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: 7b05933340 ("Bluetooth: btusb: Fix not handling ZPL/short-transfer")
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
2024-10-16 16:10:25 -04:00
..
ath3k.c move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
bcm203x.c
bfusb.c
bluecard_cs.c
bpa10x.c
bt3c_cs.c
btbcm.c move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
btbcm.h
btintel_pcie.c move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
btintel_pcie.h Bluetooth: btintel_pcie: Refactor and code cleanup 2024-05-14 10:58:30 -04:00
btintel.c move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
btintel.h Bluetooth: btintel: Add firmware ID to firmware name 2024-07-14 21:34:45 -04:00
btmrvl_debugfs.c
btmrvl_drv.h
btmrvl_main.c Bluetooth: HCI: Remove HCI_AMP support 2024-05-14 10:54:49 -04:00
btmrvl_sdio.c Bluetooth: btmrvl: Use IRQF_NO_AUTOEN flag in request_irq() 2024-09-27 10:52:19 -04:00
btmrvl_sdio.h
btmtk.c move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
btmtk.h Bluetooth: btmtk: remove #ifdef around declarations 2024-07-26 10:56:54 -04:00
btmtksdio.c move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
btmtkuart.c move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
btnxpuart.c move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
btqca.c Bluetooth: qca: Fix error code in qca_read_fw_build_info() 2024-05-14 10:51:09 -04:00
btqca.h Bluetooth: qca: clean up defines 2024-05-14 10:51:07 -04:00
btqcomsmd.c Bluetooth: btqcomsmd: Convert to platform remove callback returning void 2024-05-14 10:51:03 -04:00
btrsi.c move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
btrtl.c move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
btrtl.h
btsdio.c Bluetooth: btsdio: Do not bind to non-removable CYW4373 2024-09-12 12:24:08 -04:00
btusb.c Bluetooth: btusb: Fix regression with fake CSR controllers 0a12:0001 2024-10-16 16:10:25 -04:00
dtl1_cs.c
h4_recv.h move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
hci_ag6xx.c
hci_aml.c Bluetooth: hci_uart: Add support for Amlogic HCI UART 2024-09-10 12:44:10 -04:00
hci_ath.c
hci_bcm4377.c move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
hci_bcm.c Bluetooth: hci_bcm: Limit bcm43455 baudrate to 2000000 2024-05-14 10:51:05 -04:00
hci_bcsp.c move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
hci_h4.c move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
hci_h5.c
hci_intel.c Bluetooth: hci_intel: Fix multiple issues reported by checkpatch.pl 2024-05-14 10:51:04 -04:00
hci_ldisc.c Bluetooth: hci_ldisc: Use speed set by btattach as oper_speed 2024-09-10 13:05:13 -04:00
hci_ll.c
hci_mrvl.c
hci_nokia.c move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
hci_qca.c move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
hci_serdev.c Bluetooth: HCI: Remove HCI_AMP support 2024-05-14 10:54:49 -04:00
hci_uart.h Bluetooth: hci_uart: Add support for Amlogic HCI UART 2024-09-10 12:44:10 -04:00
hci_vhci.c move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
Kconfig Bluetooth: hci_uart: Add support for Amlogic HCI UART 2024-09-10 12:44:10 -04:00
Makefile Bluetooth: hci_uart: Add support for Amlogic HCI UART 2024-09-10 12:44:10 -04:00
virtio_bt.c virtio: rename virtio_find_vqs_info() to virtio_find_vqs() 2024-07-17 05:20:58 -04:00