X-Git-Url: https://scm.lunaixsky.com/lunaix-os.git/blobdiff_plain/1375eb51603466b723ab7dd1ca4194ee5d662f75..64e5fa9a495e388c922157b9a616204c299f5e05:/lunaix-os/hal/char/uart/16550_base.c?ds=sidebyside diff --git a/lunaix-os/hal/char/uart/16550_base.c b/lunaix-os/hal/char/uart/16550_base.c index e3dda36..8ec752e 100644 --- a/lunaix-os/hal/char/uart/16550_base.c +++ b/lunaix-os/hal/char/uart/16550_base.c @@ -66,7 +66,7 @@ uart_general_irq_handler(int iv, struct llist_header* ports) llist_for_each(pos, n, ports, local_ports) { int is = uart_intr_identify(pos); - if (iv == pos->iv && (is == UART_DATA_OK || is == UART_CHR_TIMEOUT)) { + if (iv == pos->iv && (is == UART_CHR_TIMEOUT)) { goto done; } } @@ -91,5 +91,7 @@ done: } serial_accept_buffer(pos->sdev, tmpbuf, i); + serial_accept_one(pos->sdev, 0); + serial_end_recv(pos->sdev); }