qmk_firmware/tmk_core/protocol
Stefan Kerkmann 4d107feca9
Check for ongoing transfers on the OUT endpoint (#16974)
...when attempting to start a receiving USB transfer. Previously, we would
check on the IN endpoint which is the transmitting part of the USB endpoint.
This is wrong and lead to two USB transfers being started immediately
after each other in case of e.g. RAW HID endpoints:

1. When finishing an OUT transfer the low level USB driver calls the out_cb
callback, which in turn initiates another OUT transfer by calling
qmkusbDataReceived.

2. When the raw hid receive channel runs empty inside the raw_hid task,
another OUT transfer is started to potentially fill the channel again. This
happens by calling ibnotify.

Both events occur directly after each other, thus triggering the bug.
2022-05-14 23:17:14 +01:00
..
arm_atsam Fix use of ISSI driver config before init (#16493) 2022-03-03 22:35:51 +00:00
chibios Check for ongoing transfers on the OUT endpoint (#16974) 2022-05-14 23:17:14 +01:00
lufa Format code according to conventions (#16322) 2022-02-12 18:29:31 +00:00
midi Format code according to conventions (#16322) 2022-02-12 18:29:31 +00:00
usb_hid [Bug] Fix timer include in override_wiring.c (#15221) 2021-11-19 21:22:45 +00:00
vusb VUSB - Use correct endpoint poll for VIA (#16691) 2022-03-19 17:40:47 +00:00
arm_atsam.mk Initial USB2422 driver (#14835) 2021-10-22 00:49:58 +01:00
chibios.mk Begin to carve out platform/protocol API - Single main loop (#13843) 2021-08-18 00:11:07 +01:00
host.c Format code according to conventions (#16322) 2022-02-12 18:29:31 +00:00
host.h Relocate protocol files within tmk_core/common/ (#14972) 2021-10-28 22:31:59 +01:00
host_driver.h Relocate protocol files within tmk_core/common/ (#14972) 2021-10-28 22:31:59 +01:00
lufa.mk Move Bluetooth config to common_features.mk (#14404) 2021-09-12 08:22:03 -07:00
midi.mk
report.c [Core] Move `has_mouse_report_changed` function to `report.c` (#16543) 2022-03-14 00:01:47 +00:00
report.h [Core] Move `has_mouse_report_changed` function to `report.c` (#16543) 2022-03-14 00:01:47 +00:00
serial.h
serial_soft.c
serial_uart.c
usb_descriptor.c Joystick: Simplify report descriptor and clean up error messages (#16926) 2022-04-26 08:54:34 +10:00
usb_descriptor.h Format code according to conventions (#16322) 2022-02-12 18:29:31 +00:00
usb_descriptor_common.h Use string literals for `SERIAL_NUMBER` (#13403) 2021-07-16 19:43:18 +10:00
usb_device_state.c Format code according to conventions (#16322) 2022-02-12 18:29:31 +00:00
usb_device_state.h Format code according to conventions (#16322) 2022-02-12 18:29:31 +00:00
usb_hid.mk Move USB Host Shield and Arduino core to `lib/` (#13973) 2021-08-18 18:20:25 +10:00
usb_util.c Format code according to conventions (#16322) 2022-02-12 18:29:31 +00:00
usb_util.h Relocate protocol files within tmk_core/common/ (#14972) 2021-10-28 22:31:59 +01:00
vusb.mk Begin to carve out platform/protocol API - Single main loop (#13843) 2021-08-18 00:11:07 +01:00