zephyr/drivers/serial
Paul Sokolovsky 45b1d73164 drivers: serial: uart_cmsdk_apb: Ack IRQs before callback to avoid races
This effectively reverts part of earlier 49bb163756 which moved
interrupt acknowledgement until after return from the user callback.
This was done confusing the flow of this driver with how some other
drivers do it, where pending interrupt status is checked by
uart_irq_rx_ready()/uart_irq_tx_ready(), which should be called by
the callback. But the uart_cmsdk_apb driver actually uses different
hardware register in these functions. And acking IRQs after user
callback can lead to race condition and losing an IRQ, and the
simple fix in this case is just move acknowledgement to where it
was before.

Signed-off-by: Paul Sokolovsky <paul.sokolovsky@linaro.org>
2018-11-22 13:14:19 -05:00
..
CMakeLists.txt
Kconfig
Kconfig.altera_jtag
Kconfig.cc32xx
Kconfig.cmsdk_apb
Kconfig.esp32
Kconfig.gecko
Kconfig.imx
Kconfig.leuart_gecko
Kconfig.mcux
Kconfig.mcux_lpc_usart
Kconfig.mcux_lpsci
Kconfig.mcux_lpuart
Kconfig.miv
Kconfig.msp432p4xx
Kconfig.native_posix
Kconfig.nrfx
Kconfig.ns16550
Kconfig.nsim
Kconfig.psoc6
Kconfig.qmsi
Kconfig.sam0
Kconfig.sifive
Kconfig.stellaris
Kconfig.stm32
Kconfig.uart_sam
Kconfig.usart_sam
leuart_gecko.c dts_fixups: Use DT_ prefix in all defined labels not related to Kconfig 2018-11-13 10:44:42 -06:00
uart_altera_jtag_hal.c
uart_cc32xx.c drivers: serial: Update cc32xx uart interrupt handling 2018-11-19 14:01:29 -06:00
uart_cmsdk_apb.c drivers: serial: uart_cmsdk_apb: Ack IRQs before callback to avoid races 2018-11-22 13:14:19 -05:00
uart_esp32.c
uart_gecko.c dts_fixups: Use DT_ prefix in all defined labels not related to Kconfig 2018-11-13 10:44:42 -06:00
uart_handlers.c
uart_imx.c dts_fixups: Use DT_ prefix in all defined labels not related to Kconfig 2018-11-13 10:44:42 -06:00
uart_mcux_lpsci.c dts_fixups: Use DT_ prefix in all defined labels not related to Kconfig 2018-11-13 10:44:42 -06:00
uart_mcux_lpuart.c dts_fixups: Use DT_ prefix in all defined labels not related to Kconfig 2018-11-13 10:44:42 -06:00
uart_mcux.c dts_fixups: Use DT_ prefix in all defined labels not related to Kconfig 2018-11-13 10:44:42 -06:00
uart_miv.c dts_fixups: Use DT_ prefix in all defined labels not related to Kconfig 2018-11-13 10:44:42 -06:00
uart_msp432p4xx.c drivers: serial: Update more DTS-derived labels with DT_ prefix 2018-11-21 05:02:21 -06:00
uart_native_posix.c
uart_nrfx_uart.c dts: nrf: Remove UART dts.fixup defines and use aliases instead. 2018-11-20 22:18:09 +01:00
uart_nrfx_uarte.c drivers: nrf: nrf uarte fix TX interrupts disabling. 2018-11-22 14:06:01 +01:00
uart_ns16550.c dts_fixups: Use DT_ prefix in all defined labels not related to Kconfig 2018-11-13 10:44:42 -06:00
uart_ns16550.h
uart_nsim.c
uart_psoc6.c dts_fixups: Use DT_ prefix in all defined labels not related to Kconfig 2018-11-13 10:44:42 -06:00
uart_qmsi.c dts_fixups: Use DT_ prefix in all defined labels not related to Kconfig 2018-11-13 10:44:42 -06:00
uart_sam.c dts_fixups: Use DT_ prefix in all defined labels not related to Kconfig 2018-11-13 10:44:42 -06:00
uart_sam0.c dts_fixups: Use DT_ prefix in all defined labels not related to Kconfig 2018-11-13 10:44:42 -06:00
uart_sifive.c dts_fixups: Use DT_ prefix in all defined labels not related to Kconfig 2018-11-13 10:44:42 -06:00
uart_stellaris.c dts_fixups: Use DT_ prefix in all defined labels not related to Kconfig 2018-11-13 10:44:42 -06:00
uart_stm32.c dts_fixups: Use DT_ prefix in all defined labels not related to Kconfig 2018-11-13 10:44:42 -06:00
uart_stm32.h
usart_mcux_lpc.c dts_fixups: Use DT_ prefix in all defined labels not related to Kconfig 2018-11-13 10:44:42 -06:00
usart_sam.c dts_fixups: Use DT_ prefix in all defined labels not related to Kconfig 2018-11-13 10:44:42 -06:00