Commit 0275ac2
committed
drivers: serial: nrf_sw_lpuart: Fix case of flushing RX FIFO
In Bluetooth HCI there is a case where uart_fifo_read is called
not from the UART interrupt context. If that happens and there is
pending UART data then LPUART was not able to reset the receiver
as it remained in the blocked state.
Case like that happens when HCI device sends data to the host core
after host core got reset but before HCI device is reset by the
host. Calling uart_fifo_read not from UART interrupt handler is a
violation of the API but it has been used like that to drain
UART FIFO for years and it has been useful so LPUART adapts to
it.
Case is fixed by triggering the UART interrupt if receiver is in
blocked state.
Signed-off-by: Krzysztof Chruściński <krzysztof.chruscinski@nordicsemi.no>1 parent dd805e7 commit 0275ac2
2 files changed
Lines changed: 3 additions & 1 deletion
File tree
- doc/nrf/releases_and_maturity/releases
- drivers/serial
Lines changed: 2 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
659 | 659 | | |
660 | 660 | | |
661 | 661 | | |
| 662 | + | |
| 663 | + | |
662 | 664 | | |
663 | 665 | | |
664 | 666 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
992 | 992 | | |
993 | 993 | | |
994 | 994 | | |
995 | | - | |
| 995 | + | |
996 | 996 | | |
997 | 997 | | |
998 | 998 | | |
| |||
0 commit comments