Matthieu CASTET a écrit : > Hi, > > there is a problem in samsung soc serial driver with the report of > TIOCM_CTS in get_mctrl. > > The uart layer check the status of the TIOCM_CTS in the open or > set_termios function and cache the result in the tty->hw_stopped flag. > > Then when sending data, in the function uart_start, it check > tty->hw_stopped flag before calling the start_tx uart driver callback. > > > For the samsung uart driver it means : > - if the other side is not connected or in a reset state, then CTS > signal is not activated > - we open and configure the uart. get_mctrl don't report TIOCM_CTS flag. > uart layer set tty->hw_stopped flag. > - we connect or start the other side. CTS signal become activated. > - we send some characters on the uart. This call uart_write which fill > uart tx queue and call uart_start. uart_start doesn't call driver > start_tx because tty->hw_stopped flag is set. > - because driver start_tx is never call, the data is never send on the uart. > >>From what I see, working driver managing TIOCM_CTS flag (amba-pl011, > 8250), call uart_handle_cts_change when the uart driver detect a CTS > signal change (via a interrupt). > > Because the samsung controller doesn't generate an interrupt when CTS > signal change, we can't call uart_handle_cts_change. > > And easy fix could be to always report TIOCM_CTS. > Ping ? The bug is still present on git tree and I have got no replies. Matthieu -- To unsubscribe from this list: send the line "unsubscribe linux-serial" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html