The shell UART TX code would only disable the TX IRQ when no data was available in the TX ring buffer. However, it should also disable the IRQ when all data retrieved from the buffer has been written. Otherwise it will just result in another immediate TX IRQ which results in the IRQ finally being disabled. For this to work, since ring_buf_get_claim may not always return all available data in the ring buffer on a single call, we need to loop until either no data is left in the ring buffer or the UART was unable to consume any of the data. Signed-off-by: Robert Hancock <robert.hancock@calian.com> |
||
|---|---|---|
| .. | ||
| backends | ||
| modules | ||
| CMakeLists.txt | ||
| Kconfig | ||
| Kconfig.template.shell_log_queue_size | ||
| Kconfig.template.shell_log_queue_timeout | ||
| shell_cmds.c | ||
| shell_fprintf.c | ||
| shell_help.c | ||
| shell_help.h | ||
| shell_history.c | ||
| shell_log_backend.c | ||
| shell_ops.c | ||
| shell_ops.h | ||
| shell_utils.c | ||
| shell_utils.h | ||
| shell_vt100.h | ||
| shell_wildcard.c | ||
| shell_wildcard.h | ||
| shell.c | ||