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 qemu_riscv32: use hifive1 configuration 2018-11-05 11:00:38 -05:00
Kconfig qemu_riscv32: use hifive1 configuration 2018-11-05 11:00:38 -05:00
Kconfig.altera_jtag
Kconfig.cc32xx
Kconfig.cmsdk_apb
Kconfig.esp32
Kconfig.gecko drivers: Add more uart instances for Silabs Devices 2018-10-16 15:59:37 -05:00
Kconfig.imx
Kconfig.leuart_gecko drivers: Introduce Silabs leuart shim serial driver 2018-10-31 09:00:38 -05:00
Kconfig.mcux
Kconfig.mcux_lpc_usart
Kconfig.mcux_lpsci
Kconfig.mcux_lpuart drivers: serial: Add instances to mcux lpuart shim driver 2018-09-27 05:55:55 +05:30
Kconfig.miv drivers: serial: uart_miv: Convert to use DTS 2018-11-03 06:58:23 -04:00
Kconfig.msp432p4xx
Kconfig.native_posix doc: fix kconfig misspellings 2018-11-02 17:58:16 -04:00
Kconfig.nrfx drivers: serial: nrf: remove obsolete PIN Kconfig definitions 2018-10-09 14:51:03 -04:00
Kconfig.ns16550
Kconfig.nsim
Kconfig.psoc6 drivers: serial: Add Cypress PSoC6 UART driver 2018-09-21 18:50:59 -04:00
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: Add driver for posix arch 2018-09-27 17:24:34 +02:00
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 drivers: Remove board.h include 2018-11-01 13:21:11 -04:00
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