We are using LinuxBSP (linux-2.6.10) with a ColdFire MCF5474. The second internal UART is used to communicate with a ColdFire MCF5232 using RTS/CTS flow control.
The problem we have is RTS gets turned off by the MCF5474 and does not get turned back on. Here is the initialization code:
int sfd; struct termios new_settings;
sfd = open( "/dev/tts/1", ( O_RDWR | O_NOCTTY ) );
if ( 0 flip.count >= TTY_FLIPBUF_SIZE). This will cause the UART fifo to fill up, which eventually turns RTS off. If (tty->real_raw) in n_tty_receive_buf (in n_tty.c) is set, then (tty->driver->flush_chars(tty)) does not get called. If (tty->driver->flush_chars(tty)) does get called, then receive interrupts will get enabled, which will read the fifo and cause RTS to be turned ON. However, I do not see how receive interrupts get enabled when (tty->real_raw) is set.
Has anyone seen this problem? Was (tty->driver->flush_chars(tty)) also suppose to be called in RAW mode (in n_tty_receive_buf)? What is the correct solution?
Thanks, Bill