> + } else { > + while ((lsr & BOTH_EMPTY) != BOTH_EMPTY) { > + lsr = serial_in(p, UART_LSR); > + cpu_relax(); > + } > + }
This still needs a timeout in case some kind of hardware flow control line is asserted and therefore the byte is staying put. Alan