diff options
Diffstat (limited to 'hw')
-rw-r--r-- | hw/mcf_uart.c | 1 | ||||
-rw-r--r-- | hw/pl011.c | 1 | ||||
-rw-r--r-- | hw/serial.c | 1 | ||||
-rw-r--r-- | hw/slavio_serial.c | 1 |
4 files changed, 4 insertions, 0 deletions
diff --git a/hw/mcf_uart.c b/hw/mcf_uart.c index 01973a02fd..a65cc772c2 100644 --- a/hw/mcf_uart.c +++ b/hw/mcf_uart.c @@ -88,6 +88,7 @@ uint32_t mcf_uart_read(void *opaque, target_phys_addr_t addr) if (s->fifo_len == 0) s->sr &= ~MCF_UART_RxRDY; mcf_uart_update(s); + qemu_chr_accept_input(s->chr); return val; } case 0x10: diff --git a/hw/pl011.c b/hw/pl011.c index 91c52cc318..9d8c6a3f58 100644 --- a/hw/pl011.c +++ b/hw/pl011.c @@ -78,6 +78,7 @@ static uint32_t pl011_read(void *opaque, target_phys_addr_t offset) if (s->read_count == s->read_trigger - 1) s->int_level &= ~ PL011_INT_RX; pl011_update(s); + qemu_chr_accept_input(s->chr); return c; case 1: /* UARTCR */ return 0; diff --git a/hw/serial.c b/hw/serial.c index c5d9db5fa2..b1bd0ff36c 100644 --- a/hw/serial.c +++ b/hw/serial.c @@ -223,6 +223,7 @@ static uint32_t serial_ioport_read(void *opaque, uint32_t addr) ret = s->rbr; s->lsr &= ~(UART_LSR_DR | UART_LSR_BI); serial_update_irq(s); + qemu_chr_accept_input(s->chr); } break; case 1: diff --git a/hw/slavio_serial.c b/hw/slavio_serial.c index 534a438a19..9a8e340153 100644 --- a/hw/slavio_serial.c +++ b/hw/slavio_serial.c @@ -475,6 +475,7 @@ static uint32_t slavio_serial_mem_readb(void *opaque, target_phys_addr_t addr) else ret = s->rx; SER_DPRINTF("Read channel %c, ch %d\n", CHN_C(s), ret); + qemu_chr_accept_input(s->chr); return ret; default: break; |