diff options
Diffstat (limited to 'ports')
-rw-r--r-- | ports/ARM7-LPC214x/GCC/lpc214x_serial.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/ports/ARM7-LPC214x/GCC/lpc214x_serial.c b/ports/ARM7-LPC214x/GCC/lpc214x_serial.c index 523b93257..6ed0a97b0 100644 --- a/ports/ARM7-LPC214x/GCC/lpc214x_serial.c +++ b/ports/ARM7-LPC214x/GCC/lpc214x_serial.c @@ -62,7 +62,9 @@ static void ServeInterrupt(UART *u, FullDuplexDriver *com) { case IIR_SRC_TIMEOUT:
case IIR_SRC_RX:
while (u->UART_LSR & LSR_RBR_FULL)
- chFDDIncomingDataI(com, u->UART_RBR);
+ if (chIQPutI(&com->sd_iqueue, u->UART_RBR) < Q_OK)
+ chFDDAddFlagsI(com, SD_OVERRUN_ERROR);
+ chEvtSendI(&com->sd_ievent);
break;
case IIR_SRC_TX:
{
|