zephyr/drivers
Tomasz Moń 94a6b82572 drivers: udc_dwc2: Handle IN events before OUT events
DWC2 otg OUT transfers are being used for SETUP DATA0, OUT Data Stage
packets and OUT Status Stage ZLP. On High-Speed it is possible for IN
Data Stage, OUT Status Stage ZLP and subsequent SETUP DATA0 to happen
in very quick succession, making all the three events appear at the same
time to the handler thread.

The handler thread is picking up next endpoint to handle based on the
least significant bit set. When OUT endpoints were on bits 0-15 and IN
endpoints were on bits 16-31, the least significant bit policy favored
OUT endpoints over IN endpoints. This caused problems in Completer mode
(but suprisingly not in Buffer DMA mode) that lead to incorrect control
transfer handling.

The choice between least significant bit first or most significant bit
first is arbitrary. Switching from least to most significant bit first
would have resolved the issue. It would also favor higher numbered
endpoints over lower numbered endpoints.

Swap the order of endpoints in bitmaps to have IN on bits 0-15 and OUT
on bits 16-31 to keep handling lower numbered endpoints first and
resolve the control transfer handling in Completer mode.

Signed-off-by: Tomasz Moń <tomasz.mon@nordicsemi.no>
2024-10-23 16:51:02 +02:00
..
adc drivers: adc: add adc disable to save power 2024-10-21 12:35:28 +02:00
audio drivers: audio: dmic: Add support for multiple nrf PDM instances 2024-10-18 08:19:01 -04:00
auxdisplay
bbram
bluetooth drivers: bluetooth: Rename Silabs HCI driver 2024-10-23 16:50:39 +02:00
cache
can drivers: can: select CONFIG_PINCTRL where needed 2024-10-21 18:54:27 -05:00
charger
clock_control boards: nxp: frdm_mcxn947: Enabled MRT 2024-10-18 17:44:48 +01:00
comparator drivers: comparator: add fake comparator 2024-10-10 20:24:52 -04:00
console
coredump
counter drivers: counter: Add AGT counter driver support for Renesas RA8 2024-10-21 12:41:00 +02:00
crypto drivers: crypto: Fix pointer type warnings in STM32 AES driver 2024-10-11 09:28:12 +02:00
dac drivers: dac: Add dummy driver for vnd,dac 2024-10-02 09:51:19 +02:00
dai drivers: dai: sai: support pm runtime operations 2024-10-17 10:48:38 -04:00
disk zephyr: bulk update to DT_NODE_HAS_STATUS_OKAY 2024-10-03 17:06:52 +01:00
display drivers: display: Add ssd1322 driver 2024-10-18 09:18:21 +02:00
dma drivers: dma: smartbond: Fix power policy handling 2024-10-22 20:41:55 +02:00
dp dp: swdp_bitbang: fix unused variable build error 2024-10-11 17:04:38 -05:00
edac
eeprom eeprom sim: Enhance & refactor native part so it works w emb libCs 2024-10-02 09:48:12 +02:00
entropy
espi drivers: espi: npcx: support espi taf rpmc request 2024-10-17 09:44:39 +02:00
ethernet drivers: ethernet: Add dummy driver for vnd,ethernet 2024-10-22 20:42:05 +02:00
firmware boards: nxp: Removing CONFIG_PINCTRL from the boards defconfig 2024-10-15 19:09:45 -04:00
flash drivers: flash: flash_mcux_flexspi_nor: add IS25LP support 2024-10-23 09:06:19 +09:00
fpga sys: util: define bits per byte, nibble, and nibbles per byte 2024-10-15 19:05:06 +01:00
fuel_gauge
gnss
gpio drivers: i2c: add bus recovery 2024-10-22 20:40:29 +02:00
haptics
hwinfo
hwspinlock
i2c i2c: Fix default RTIO handler transactions 2024-10-22 18:29:34 -04:00
i2s drivers: i2s_mcux_sai: Clang format 2024-10-22 14:13:59 +02:00
i3c drivers: i3c: shell: fix argc count for setmrl 2024-10-21 18:52:15 -05:00
ieee802154 drivers: ieee802154_nrf5: support IEEE802154_SELECTIVE_TXCHANNEL 2024-10-22 14:04:33 +02:00
input drivers: input: gt911: always set INT pin during probe 2024-10-22 19:04:59 -04:00
interrupt_controller drivers: intc: irqstr: initialize 'enabled' variable 2024-10-18 14:16:21 +02:00
ipm drivers: ipm: xlnx: fix AMD copyright 2024-10-14 13:03:48 +02:00
kscan kscan: input: fix multiple kscan inputs 2024-09-30 12:10:29 +01:00
led
led_strip drivers: led_strip: Fix formatting of log message 2024-10-07 13:39:59 +02:00
lora drivers: lora: rylrxxx: Add stdio.h to resolve function prototypes 2024-10-15 04:09:56 -04:00
mbox soc: nordic: Remove the nRF54L15 EngA 2024-10-21 01:46:39 +01:00
mdio drivers: mdio: add NXP i.MX NETC MDIO driver 2024-10-16 10:00:32 +02:00
memc drivers: memc: add memc_mcux_flexspi_aps6404l driver 2024-10-22 18:29:42 -04:00
mfd drivers: gpio: implement parallel mode in TLE9104 2024-10-17 15:38:45 -04:00
mipi_dbi boards: nxp: Removing CONFIG_PINCTRL from the boards defconfig 2024-10-15 19:09:45 -04:00
mipi_dsi drivers: dma: dma_mcux_smartdma: update interface to support custom FW 2024-10-15 04:10:50 -04:00
misc drivers: devmux: use int instead of ssize_t for select_get() 2024-10-21 18:48:18 -05:00
mm ace: mm: tlb: Check tlb translation enabled before flushing cache 2024-10-15 04:09:49 -04:00
modem modem_cellular: Add support for the Telit ME310G1 LTE modem 2024-10-17 09:46:09 +02:00
mspi drivers: mspi: fix incorrect DT macro used in controller emulator 2024-10-22 22:46:47 -04:00
net
pcie
peci ITE: it8xxx2: Remove CONFIG_PINCTRL from soc defconfig file 2024-10-15 13:52:55 +02:00
pinctrl drivers: spi: gecko: add new driver for SPI communication via EUSART 2024-10-21 12:46:21 +02:00
pm_cpu_ops
power_domain drivers: power_domain: add driver for NXP's SCU-managed PDs 2024-10-11 09:27:57 +02:00
ps2
ptp_clock boards: nxp: Removing CONFIG_PINCTRL from the boards defconfig 2024-10-15 19:09:45 -04:00
pwm boards: nxp: Removing CONFIG_PINCTRL from the boards defconfig 2024-10-15 19:09:45 -04:00
regulator
reset
retained_mem drivers: retained_mem: nrf: align dependencies to nrf54h20 2024-10-18 08:17:53 -04:00
rtc Verification: verify code changes from PR review 2024-10-09 13:46:56 +02:00
sdhc drivers: Remove CONFIG_PINCTRL in defconfig files 2024-09-23 18:08:14 -04:00
sensor drivers: sensor: adxl372: Updated driver with RTIO stream functionality 2024-10-22 18:30:13 -04:00
serial soc: ti: k3: Select PINCTRL in UART driver not Kconfig.defconfig 2024-10-23 11:23:18 +02:00
sip_svc
smbus
spi drivers: spi: remove unused variables 2024-10-23 11:19:56 +02:00
stepper tests: drivers: stepper: stepper_api: test cb user_data 2024-10-22 22:46:26 -04:00
syscon
tee
timer drivers: timer: mec5: Driver using Microchip RTOS timer as kernel tick 2024-10-22 20:41:32 +02:00
usb drivers: udc_dwc2: Handle IN events before OUT events 2024-10-23 16:51:02 +02:00
usb_c usbc: add event-driven handling of CC lines changes in ps8815 driver 2024-09-23 10:03:19 +02:00
video drivers: video: esp32s3: Add set_signal video api function 2024-10-16 10:00:01 +02:00
virtualization
w1 drivers: w1: Add MAX32xxx 1-Wire driver 2024-10-18 14:16:14 +02:00
watchdog zephyr: bulk update to DT_NODE_HAS_STATUS_OKAY 2024-10-03 17:06:52 +01:00
wifi drivers: wifi: Add changes for regulatory domain 2024-10-23 16:50:15 +02:00
xen
CMakeLists.txt drivers: comparator: Add initial files 2024-10-10 20:24:52 -04:00
Kconfig drivers: comparator: Add initial files 2024-10-10 20:24:52 -04:00