Merge "serial: qca_uart: Restart UART RX when RX stale timeout occurs"

This commit is contained in:
Linux Build Service Account 2021-11-01 10:35:27 -07:00 committed by Gerrit - the friendly Code Review server
commit a838762ce1
2 changed files with 10 additions and 0 deletions

View file

@ -251,6 +251,7 @@ struct ipq_serial_platdata {
#define MSM_BOOT_UART_DM_RX_BREAK (1 << 6)
#define MSM_BOOT_UART_DM_HUNT_CHAR (1 << 7)
#define MSM_BOOT_UART_DM_RX_BRK_START_LAST (1 << 8)
#define MSM_BOOT_UART_DM_RX_STALE_TIMEOUT (2 << 10)
/* UART Receive FIFO Registers - 4 in numbers */
#if PERIPH_BLK_BLSP

View file

@ -113,6 +113,15 @@ msm_boot_uart_dm_read(unsigned int *data, int *count, int wait,
/* Check for DM_RXSTALE for RX transfer to finish */
while (!(status_reg & MSM_BOOT_UART_DM_RXSTALE)) {
status_reg = readl(MSM_BOOT_UART_DM_SR(base));
if((status_reg & MSM_BOOT_UART_DM_RX_STALE_TIMEOUT) && \
(status_reg & MSM_BOOT_UART_DM_SR_RXFULL)) {
printf("Console buffer overflow occured!!");
msm_boot_uart_dm_init_rx_transfer(base);
total_rx_data = rx_data_read = 0;
return MSM_BOOT_UART_DM_E_RX_NOT_READY;
}
status_reg = readl(MSM_BOOT_UART_DM_MISR(base));
if (!wait)
return MSM_BOOT_UART_DM_E_RX_NOT_READY;