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 drivers: auxdisplay: Remove unused variables 2024-09-21 12:23:51 +01:00
bbram driver: bbram: npcx: fix the way to clear bbram status 2024-06-21 10:07:41 +02:00
bluetooth drivers: bluetooth: Rename Silabs HCI driver 2024-10-23 16:50:39 +02:00
cache Revert "drivers: cache: nrf: enable CACHE_NRF_PATCH_LINEADDR for nRF92" 2024-09-09 13:54:39 -04:00
can drivers: can: select CONFIG_PINCTRL where needed 2024-10-21 18:54:27 -05:00
charger charger: bq25180: Add threshold voltage for precharge 2024-09-05 17:01:05 -04:00
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 drivers: console: rtt_console: use Segger recommended write API 2024-08-12 10:14:34 +02:00
coredump drivers: kconfig: unify menuconfig title strings 2023-03-28 15:06:06 +02:00
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 arch: define struct arch_esf and deprecate z_arch_esf_t 2024-06-04 14:02:51 -05:00
eeprom eeprom sim: Enhance & refactor native part so it works w emb libCs 2024-10-02 09:48:12 +02:00
entropy entropy: native_posix: Add kconfig to not seed by default 2024-09-05 16:56:33 -04:00
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 style: drivers: comply with MISRA C:2012 Rule 15.6 2024-09-11 07:40:35 -04:00
gnss gnss: rename u-blox M10 driver to M8 2024-08-26 17:27:12 -04:00
gpio drivers: i2c: add bus recovery 2024-10-22 20:40:29 +02:00
haptics drivers: haptics: drv2605: Hard codes open loop mode for LRA mode 2024-08-20 14:52:32 -04:00
hwinfo drivers: hwinfo: stm32: mark STM32WB0 series as incompatible 2024-09-12 10:03:37 +02:00
hwspinlock style: drivers: comply with MISRA C:2012 Rule 15.6 2024-09-11 07:40:35 -04:00
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 drivers: led: lp5562: Add PM Device support 2024-09-13 13:43:33 +02:00
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 lib: net_buf: rename header file from zephyr/net/buf.h to zephyr/net_buf.h 2024-09-07 11:19:05 -05:00
pcie kernel: mm: rename z_phys_un/map to k_mem_*_phys_bare 2024-06-12 21:13:26 -04:00
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 shell: do not enable subsystem/driver shell modules by default 2023-11-20 09:21:40 +01:00
power_domain drivers: power_domain: add driver for NXP's SCU-managed PDs 2024-10-11 09:27:57 +02:00
ps2 style: drivers: comply with MISRA C:2012 Rule 15.6 2024-09-11 07:40:35 -04:00
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 espressif: clean up unused code 2024-09-09 13:55:39 -04:00
reset drivers: reset: Add NXP RSTCTL driver 2024-05-21 16:49:42 -04:00
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 kernel: move syscall_handler.h to internal include directory 2023-11-03 11:46:52 +01:00
smbus drivers: stm32: Make some config symbols menuconfig symbols 2024-09-05 16:58:04 -04:00
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 drivers: kconfig: unify menuconfig title strings 2023-03-28 15:06:06 +02:00
tee style: drivers: comply with MISRA C:2012 Rule 15.6 2024-09-11 07:40:35 -04:00
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 kernel: mm: rename z_phys_un/map to k_mem_*_phys_bare 2024-06-12 21:13:26 -04:00
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 style: drivers: comply with MISRA C:2012 Rule 15.6 2024-08-20 10:33:51 +02:00
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