blob: 57b41177dfb2877518bf76ab6ef5aba238240fdb (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
|
serial port data THRE comes too early
When using a serial port with a Linux guest (and host) and the application uses hardware handshake, this fails because the handling of TEMT and/or THRE is not operating properly in such cases.
As long as it takes _time_ for the 'real' port to output the data TEMT may not return true. After writing characters to a real port, the driver should timeout the transmission and after the total time expired, TEMT can be set.
Some applications i.e. with a simplex modem do: RTS_on, WRITE_data, repeat IOCTL(GET_LSR_INFO), RTS_off, READ_data.
At the moment this fails because very early in the transmission, GET_LSR_INFO returns true and the modem transmitter is switched off.
I looked in the source (git) and found that 'char_transmit_time' is present. My skills fail to implement it myself.
I build and ran the latest git version and found it to fail as decribed above. I hope someone can solve it.
|