After reviewing uart's emulation related code in serial.c I am not able to understand how interrupt is raised in case fifo mode is enabled. according to UART specifiation, in fifo mode THRE interrupt is raised when fifo is either empty or below threshold.. What I can see, in xmit_serial function, serial_update_irq is called every time THR is empty.. Should there not be some code to check and raise interrupt only if fifo is below some threshold ??