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 drivers: ethernet: Kconfig: Remove redundant 'default n' properties 2018-07-03 17:11:31 -04:00
Kconfig.cc32xx drivers: ethernet: Kconfig: Remove redundant 'default n' properties 2018-07-03 17:11:31 -04:00
Kconfig.cmsdk_apb drivers: ethernet: Kconfig: Remove redundant 'default n' properties 2018-07-03 17:11:31 -04:00
Kconfig.esp32 drivers: ethernet: Kconfig: Remove redundant 'default n' properties 2018-07-03 17:11:31 -04:00
Kconfig.gecko drivers: Add more uart instances for Silabs Devices 2018-10-16 15:59:37 -05:00
Kconfig.imx drivers: ethernet: Kconfig: Remove redundant 'default n' properties 2018-07-03 17:11:31 -04:00
Kconfig.leuart_gecko drivers: Introduce Silabs leuart shim serial driver 2018-10-31 09:00:38 -05:00
Kconfig.mcux drivers: ethernet: Kconfig: Remove redundant 'default n' properties 2018-07-03 17:11:31 -04:00
Kconfig.mcux_lpc_usart drivers: ethernet: Kconfig: Remove redundant 'default n' properties 2018-07-03 17:11:31 -04:00
Kconfig.mcux_lpsci drivers: ethernet: Kconfig: Remove redundant 'default n' properties 2018-07-03 17:11:31 -04:00
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 drivers: ethernet: Kconfig: Remove redundant 'default n' properties 2018-07-03 17:11:31 -04:00
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 drivers/serial: ns16550: extend to support 4 ports 2018-07-20 14:11:33 -04:00
Kconfig.nsim Kconfig: Use a short, consistent style for prompts 2018-08-15 04:10:10 -07:00
Kconfig.psoc6 drivers: serial: Add Cypress PSoC6 UART driver 2018-09-21 18:50:59 -04:00
Kconfig.qmsi drivers: ethernet: Kconfig: Remove redundant 'default n' properties 2018-07-03 17:11:31 -04:00
Kconfig.sam0 drivers: ethernet: Kconfig: Remove redundant 'default n' properties 2018-07-03 17:11:31 -04:00
Kconfig.sifive riscv: Rename the FE310 SoC to Sifive Freedom 2018-08-16 06:23:01 -07:00
Kconfig.stellaris drivers: ethernet: Kconfig: Remove redundant 'default n' properties 2018-07-03 17:11:31 -04:00
Kconfig.stm32 drivers: ethernet: Kconfig: Remove redundant 'default n' properties 2018-07-03 17:11:31 -04:00
Kconfig.uart_sam drivers: ethernet: Kconfig: Remove redundant 'default n' properties 2018-07-03 17:11:31 -04:00
Kconfig.usart_sam drivers: ethernet: Kconfig: Remove redundant 'default n' properties 2018-07-03 17:11:31 -04:00
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 drivers: serial: Add Altera shim driver for JTAG UART soft IP 2017-11-17 07:46:40 -05:00
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 drivers: serial: Fix syntax error 2018-06-29 10:18:48 +02:00
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 headers: Fix headers across the project 2018-09-17 15:49:26 -04:00
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_sam0.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_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 headers: Fix headers across the project 2018-09-17 15:49:26 -04:00
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