mirror of
https://git.codelinaro.org/clo/qsdk/oss/boot/u-boot-2016.git
synced 2025-12-10 07:44:53 +01:00
Merge "serial: qca_uart: Restart UART RX when RX stale timeout occurs"
This commit is contained in:
commit
a838762ce1
2 changed files with 10 additions and 0 deletions
|
|
@ -251,6 +251,7 @@ struct ipq_serial_platdata {
|
||||||
#define MSM_BOOT_UART_DM_RX_BREAK (1 << 6)
|
#define MSM_BOOT_UART_DM_RX_BREAK (1 << 6)
|
||||||
#define MSM_BOOT_UART_DM_HUNT_CHAR (1 << 7)
|
#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_BRK_START_LAST (1 << 8)
|
||||||
|
#define MSM_BOOT_UART_DM_RX_STALE_TIMEOUT (2 << 10)
|
||||||
|
|
||||||
/* UART Receive FIFO Registers - 4 in numbers */
|
/* UART Receive FIFO Registers - 4 in numbers */
|
||||||
#if PERIPH_BLK_BLSP
|
#if PERIPH_BLK_BLSP
|
||||||
|
|
|
||||||
|
|
@ -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 */
|
/* Check for DM_RXSTALE for RX transfer to finish */
|
||||||
while (!(status_reg & MSM_BOOT_UART_DM_RXSTALE)) {
|
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));
|
status_reg = readl(MSM_BOOT_UART_DM_MISR(base));
|
||||||
if (!wait)
|
if (!wait)
|
||||||
return MSM_BOOT_UART_DM_E_RX_NOT_READY;
|
return MSM_BOOT_UART_DM_E_RX_NOT_READY;
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue