static void uart00_int(int irq, void *dev_id, struct pt_regs *regs) { struct uart_port *port = dev_id; unsigned int status, pass_counter = 0; status = UART_GET_INT_STATUS(port); do { if (status & UART_ISR_RI_MSK) uart00_rx_chars(port, regs); if (status & (UART_ISR_TI_MSK | UART_ISR_TII_MSK)) uart00_tx_chars(port); if (status & UART_ISR_MI_MSK) uart00_modem_status(port); if (pass_counter++ > UART00_ISR_PASS_LIMIT) break; status = UART_GET_INT_STATUS(port); } while (status); }
static void uart00_start_tx(struct uart_port *port) { UART_PUT_IES(port, UART_IES_TIE_MSK); uart00_tx_chars(port); }